永发信息网

unity脚本中变量在另一个脚本如何调用

答案:3  悬赏:0  手机版
解决时间 2021-11-07 05:32
unity脚本中变量在另一个脚本如何调用
最佳答案
1.新建两个脚本,在脚本2中实例化脚本1。

2.在脚本2中用脚本1实例化对象调用脚本1中的公有变量,赋初值。

3.创建两个物体,将两个脚本绑定不同物体。


4.将物体1拖拽到脚本2的变量上进行赋值。

全部回答
在A.js中用静态声明 static var 变量:bool;
然后在B.js中直接用 B.变量 调用;
或者用 GameObject.Find("gameobject名字").GetComponent(A).变量 调用;追问我用C#写的你给我js的,这个答案貌似在论坛上也见过。。。
不太清楚实际情况,但是,
(1)你这样写的前提是,A 和 B 必须同时实例化到同一个gameObject上(这两个脚本得同时应用到一个物体上),否则你的a = GetComponent()肯定为null ,因为B调用这个Get,而他本身所处的gameObject本没有A这个脚本组件,A的实例在另一个物体上。 估计这是你报错的一个原因。
(2)用static声明全局变量似乎没必要,static的作用应该是让变量在类被实例之前就得到实例化。用static的话,那么应该是要达到这样的目的,即用类名直接调用变量或函数(Mathf类里面的很多数学数值和函数都是这样的例子),你这个情况如果用了static那就最好应该为了这样的目的:
A.Roadnode.count
(3)实时操作数组,最好用List<>,具体可以参考msdn List的用法,
(4)如果你的目的只是为了让B能够通过代码访问A的变量,一般的public 变量就足够,其余你只需要解决B通过何种途径正确访问A。比如,你可以把A做成singleton:
static A instance;
Awake(){ instance = this;}),让A有一个static实例指向自己, 那B就直接用 A.instance 来获取A的实例,这样就可以在任何地方直接访问A的变量和函数。

又或者用 GameObject.Find("名字") 遍历所场景中所有有的对象,最后用GetComponent找到A的实例,这个方法效率很低,最好是在初始化函数里调用。追问我的两个脚本是绑定在同一个gameobject上的,然后我试了一下说的第四点:
//A.cs
static public A instance;Awake(){ instance = this;}
在B.cs中
Update(){ Debug.Log("Seeker.Roadnode.Count::" + Seeker.seek.Roadnode .Count );},如果你的意思是这样,还是一样的错误追答如果你是用A做类名, 哪就应该是:
A.Roadnode.Count。
instance 是A的实例名!你调用的时候要用类名。它指向它自己的A类实例,这是singleton 模式,如果场景中存在多个A类实例就会出问题, instance就会仅指向最后一个被实例化的A类实例。比如,你如果有3个包含A的GO,那么在顺序上,instance只会指向时间上最后一个生成的A实例。

Singleton的目的是把A类的实例固定为唯一,并限定A类只能有一个实例,再用static public暴露他的调用,让场景中所有类都可以随时调用A的实例。我给你的那个例子是简化版本的。理论上整个场景中应该仅允许存在一个A类的实例化。这样做相当于unity 本身的脚本的类, 比如Mathf,Physics(建议查下singleton相关的知识)

如果你两个脚本打算放在一个GO上,建议直接用 GetComponent调用, 而不是用Singleton模式。如果你用Singleton模式,最好把A类单独放到一个空GO上。我之前说的几个方法是因为我不知道你具体要怎样应用。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么iPhone7玩全军出击特效开到最高就卡
舞转回红袖,歌愁敛翠钿。满堂开照曜,分座俨婵
铁观音和青柠可以一起喝吗
找对象,你看重的是什么?
本金10000利息5.05% 复利一年能拿多少钱?复利
海宁客运中心到慈溪有直达车吗?
成语 ( )( )不接
在5173上买劲舞团的号安全吗
ug阵列曲线后不对等位置有偏差 难道ug的误差
下列哪些数是方程x 2 +2x-8=0的根?-4,-3,-
徐海论的英语发音是英式发音还是美式发音呢?
从石矸街道到鄞州区行政服务中心该坐几路公交
敦煌壁画邮票(–)52年7月发行多少钱
虾米和墨鱼一起煮粥怎么煮啊,想煮给老婆吃。
大四学生提前实习需要向学校提供什么手续
推荐资讯
朕今晚上半夜去永和宫,下半夜去景仁宫,天明
冰柜有没有1.3米的
日本ask手机
莫斯利安,安慕希和纯甄酸奶哪款好喝?
东莞哪有烧焊
各位求您们了,一部古装电视剧
(1/2)真的喜欢一个人是不是都舍不得碰她
做茶餐厅和西餐的进,我想问下你们餐厅的黑椒
请问福建省莆田市那里有耐克的折扣店?
全国哪里的家具最有名,而且最便宜?
less prepayment 什么意思
伊宁市哪里最容易泡妹
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?