【Unity 脚本相关】实现脚本之间动态变量传递

这篇具有很好参考价值的文章主要介绍了【Unity 脚本相关】实现脚本之间动态变量传递。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这是我在做作品的过程中遇到的问题,大概阐述一下遇到的问题及解决思路。

1 问题阐述

因为是做天空盒,有很多变量需要控制,shader之间又想实现颜色、变量的传递,所以整个项目的所有暴露出来的可调整变量,我都汇总在了主脚本Skybox中,并把这个Skybox脚本挂在了Main Camera对象下:

unity脚本之间的变量引用,Unity学习,unity

又在场景中加入了面片云模型:

unity脚本之间的变量引用,Unity学习,unity

面片云需要自转,我希望暴露出一个参数能够控制面片云自转的速度,这个参数希望跟其他参数一起,都在Skybox脚本中控制:

unity脚本之间的变量引用,Unity学习,unity

那么问题就来了,云自转我是单独给云模型对象挂了一个Rotate脚本,现在这个Rotate脚本需要以某种方式访问到Skybox脚本中定义的Cloud Speed变量。

GameObject.Find()方法被我Pass了,效率很低,还有就是一堆需要各种访问父对象的方法,我觉得好麻烦。。

如果是静态变量,那好说,在脚本Skybox里定义,

pulbic static int CloudSpeed = 1;

脚本B就可以直接访问这个变量,

int speed = Skybox.CloudSpeed;

但现在这个变量需要可调控,意味着不能是静态变量。所以整个过程就是,脚本Rotate需要访问脚本Skybox中定义的动态变量CloudSpeed

2 解决思路

我在Skybox脚本中定义CloudSpeed变量的同时,定义了一个方法,这个方法会返回定义变量的值:

[Range(1, 10)]
    public int CloudSpeed = 1;
    public int getCloudSpeed()
    {
        return CloudSpeed;
    }

 然后在Rotate脚本访问这个方法,

public Skybox skybox;

void Update()
{
        
    cloudSpeed = skybox.getCloudSpeed();
}

然后把Rotate脚本挂在我的clouds对象下,拖入Main Camera对象就行,

unity脚本之间的变量引用,Unity学习,unity

以上就是我的解决思路了,当然可能饶了弯路,,不一定是最好的方法。文章来源地址https://www.toymoban.com/news/detail-536565.html

到了这里,关于【Unity 脚本相关】实现脚本之间动态变量传递的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UE4使用GameInstance设置全局变量(不同关卡、类之间数据传递)

    一、GameInstance是什么? (UE4官方)是一个正在运行的游戏的 高级别的管理对象 ,在游戏创建时生成,游戏实例关闭时销毁,一个游戏中可以有多个GameInstance; 在游戏中切换关卡,GameInstance不会销毁(切换关卡时可用GameInstance携带信息); 二、GameInstance有什么作用? 在多关

    2024年02月02日
    浏览(23)
  • Matlab Unity图像传输,实现Matlab与Unity之间通信

    using System; using System.Net.Sockets; using System.Text; using System.Collections; using System.Collections.Generic; using System.Threading; using UnityEngine; using System.Net; using System.IO; using System.Globalization; public class Server : MonoBehaviour {     //General Init     private ListServerClient clients;     private Listint disconnectInde

    2024年02月09日
    浏览(17)
  • Python与Unity之间通信实现【Socket实现】

    最近做的项目需要实现Python与Unity之间的数据通信,Unity中也有python的插件如IronPython、PyUnity,但是我的python环境和模型都在WSL2中配置了,就选择了用Socket通信的方法实现。   思路就是把一个np二维/一维数组转换为list类型,然后两两数字之间插入\\\",\\\"作为分割转换为字符串类型

    2024年02月11日
    浏览(22)
  • Linux【脚本 04】Shell脚本传递参数的4种方式(位置参数、特殊变量、环境变量和命名参数)实例说明

    Shell脚本是一种命令语言,可以用于自动化执行各种任务。在脚本中,我们可以通过参数来传递信息,这样脚本就可以根据这些信息来执行特定的操作。本文将介绍如何在shell脚本中传递参数,包括位置参数、特殊变量、环境变量和命名参数。 1.1 解释器 #!/bin/bash 称为shebang或

    2024年02月06日
    浏览(52)
  • WSL2和Windows之间通信实现【以Unity为例】

    WSL2可以视为一个独立的虚拟机,具有自己独立的IP地址,通过虚拟路由器与Windows连接,因此WSL2不能直接访问到Windows的主机地址,需要动态获取。 默认情况下Windows的防火墙会阻止WSL2中应用对Windows的网络访问(see: Add \\\"allow\\\" rule to Windows firewall for WSL2 network · Issue #4585 · microsof

    2024年02月12日
    浏览(18)
  • Unity摄像机旋转与移动脚本实现

            最近做项目经常用到需要控制摄像机的地方,查阅了网上的方法后,以自己的需要写了一个这样的功能。希望对码友有所帮助        (本脚本放在摄像机上)         摄像机脚本功能:           1、通过键盘的WASD键控制摄像机的前后左右移动           2、通过

    2024年02月13日
    浏览(19)
  • 【python】求多变量/样本(矩阵)之间的相关性系数

    创作日志: Pearson或Spearson代表的是两个变量之间的相关性,因此一般输入是两个向量(vector),那么当我们有多个变量时,怎样计算他们两两之间的相关性系数呢?得到的correlation matrix各元素代表的又是什么意思呢? 举例: 矩阵A有两个样本:a1 与 a2,矩阵B有两个样本:b1 与

    2024年02月06日
    浏览(18)
  • unity脚本实现与Matlab强大计算能力的交互

    软件准备是matlab2022b,VS2019, unity2020.3.25f1c1版本、实现了在unity中调用带参matlab函数,输出矩阵跟进行简单计算。 方案一:将matlab文件转化成.dll引用 一、前期软件准备: 1、需安装matlab、matlab compiler、matlab compiler SDK 。用安装程序安装就行,或者在matlab命令行窗口 deploytool 点

    2024年01月23日
    浏览(17)
  • Unity 游戏开发、01 基础知识大全、简单功能脚本实现

    Unity默认窗口布局 Hierarchy 层级窗口 Scene 场景窗口,3D视图窗口 Game 游戏播放窗口 Inspector 检查器窗口,属性窗口 Project 项目窗口 Console 控制台窗口 恢复默认布局 Window | Layouts | Default 调大页面字体 Preference | UI Scaling 新项目默认创建了 SampleScene 场景 {摄像机,平行光} SampleScen

    2024年02月09日
    浏览(41)
  • Unity 游戏开发、01 基础篇 | 知识大全、简单功能脚本实现

    Unity默认窗口布局 Hierarchy 层级窗口 Scene 场景窗口,3D视图窗口 Game 游戏播放窗口 Inspector 检查器窗口,属性窗口 Project 项目窗口 Console 控制台窗口 恢复默认布局 Window | Layouts | Default 调大页面字体 Preference | UI Scaling 新项目默认创建了 SampleScene 场景 {摄像机,平行光} SampleScen

    2024年02月09日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包