unity3d中在脚本中怎么获得另脚本中的变量

2021-01-26 11:22:51 字数 3429 阅读 5701

1楼:雪中彳亍

我只会用c#:

1、可以把变量声明为public static,然后使用时为 类名.变量名。

2、因为每个脚本都是一个类,所以可以在另一个脚本b中设置函数获取变量的值,在脚本a中定义一个b的对象,调用那个函数就可以了。

javascript就不清楚了。

2楼:钢神绿钢

1.新建两个c#脚本

2.在test1脚本中定义一个整型变量speed并赋值60,在开始函数中输出结果

3.在test2中定义共有类变量t1,test1类成员t1.speed赋值10并输出结果

4.将脚本拖拽到场景中的物体上,其中,t1一栏需要拖拽物体上的test1脚本

5.观察控制台输出结果(先60,后10)

3楼:步虚真人

1 可以把变量声明为public static然后使用时为 类名.变量名就好。

2 貌似有消息传送的机制,但是很复杂,我也并不太清楚,建议查一下吧。

很抱歉,我是新手,只是比较会用方法1,希望有帮助吧。

unity3d中在一个脚本中怎么修改另一个脚本中定义的全局变量,比如定义

4楼:祭永芬迮秋

1.新建两个c#脚本

2.在test1脚本中定义一个整型变量speed并赋值60,在开始函数中输出结果

3.在test2中定义共有类变量t1,test1类成员t1.speed赋值10并输出结果

4.将脚本拖拽到场景中的物体上,其中,t1一栏需要拖拽物体上的test1脚本

5.观察控制台输出结果(先60,后10)

5楼:匿名用户

c# 中没有全局变量,你是不是指成员变量(用 unityscript 语言只是省略的类名,那里看上去的全局变量其实也是成员变量)。

有好几种方法都可以

1. 把另一个类中的成员做成 static 的,用 myclass.member 的方法调用

2. 把另一个类(继承于 monobehaviour)做出单件模式,用类似下面的方法:

3. 因为 monobehaviour 的本身就是 ***ponent,所以一个继承于 monobehaviour 的行为脚本本质上和 transform、collider 等一样是游戏对象组件。首先拿到这个脚本挂载的 gameobject(如果两个脚本挂载在一个 gameobject 下就不用得到,因为默认就是当前 gameobject),用 gameobject.

get***ponent() 得到另一个类的运行实例。

unity3d里面怎么在一个脚本中时时获取另一个脚本中的变量? 我在a.js脚本里有一个布尔变量,

6楼:匿名用户

在a.js中用静态声明 static var 变量:bool;

然后在b.js中直接用 b.变量 调用;

或者用 gameobject.find("gameobject名字").get***ponent(a).变量 调用;

7楼:匿名用户

1.可以把变量定义为static public 直接调用2.如果a是绑定在gameobject上可以用get***ponent方式获取

unity3d 使用c#如何访问某个对象里的c#脚本里的一个变量

8楼:匿名用户

把你要获取的变量权限定义为public 类型 变量.

以下方法任意一个都可以:

一:public gameobject 另一个物体; //监视面板拖拽赋值

另一个物体.get***ponent《脚本》().变量 获得并更改.

二:将另一个物体命名为"***".

gameobject.find("***").get***ponent《脚本》().变量;

三:将另一个物体tag改为"***";

gameobject.findgameobjectwithtag("***").get***ponent《脚本》().

变量; 需要注意的是如果多个物体共用一个tag可能得到的结果并不是你预期的.

其他还有很多的方法.这些就足够你用的了.

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

9楼:红旗下的蛋蛋

不太清楚实际情况,但是,

(1)你这样写的前提是,a 和 b 必须同时实例化到同一个gameobject上(这两个脚本得同时应用到一个物体上),否则你的a = get***ponent()肯定为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()),让a有一个static实例指向自己, 那b就直接用 a.instance 来获取a的实例,这样就可以在任何地方直接访问a的变量和函数。

又或者用 gameobject.find("名字") 遍历所场景中所有有的对象,最后用get***ponent找到a的实例,这个方法效率很低,最好是在初始化函数里调用。

10楼:匿名用户

1、首先我们创建一个新的项目。

2、在layout下选择2 by 3,如图所示。

3、此时我们切换到project面板。

4、在project面板空白处右键选择create》c#,,如图。

5、创建完成,可以自行命名。

6、双击打开即可编写脚本。

11楼:钢神绿钢

1.新建两个脚本,在脚本2中实例化脚本1。

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

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

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

12楼:手机用户

在a.js中用静态声明 static var 变量:bool;

然后在b.js中直接用 b.变量 调用;

或者用 gameobject.find("gameobject名字").get***ponent(a).变量 调用;

javascript脚本中,脚本可以调用另脚本中的函

1楼 匿名用户 可以的只要将两个脚本文件都引入进来,就可以调用了,不过,因为浏览器加载是有顺序的,所以,要把包含有需要调用的那个函数的文件,先调用,就可以实现了。 比如,你有一个1 js 这个文件里有这样一个函数 function aa 然后还有一个2 js 这里面需要调用 那个1 js里的aa函数...

如何查看sql计划任务中的sql脚本

1楼 长河 update tab1 set z1 1 where date1 convert varchar 10 dateadd d 1 getdate 120 其中,可以执行 1select convert varchar 10 dateadd d 1 getdate 120 这个就是获取当前日...

如何在JS文件中引用另JS文件中的变量

1楼 千锋教育 可以闭包的相关知识解答,如果不懂可以继续沟通,写请你把你的问题写的详细点。 2楼 i u爱语 https jingyan baidu article fdffd1f8716c71f3e98ca1ee html 3楼 划过短裙的狼眼 如果sever是全局变量应该是可以的 请教如何在一个...