不太清楚实际情况,但是,
(1)你这样写的前提是,A 和 B 必须同时实例化到同一个gameObject上(这两个脚本得同时应用到一个物体上),否则你的a = GetComponent<A>()肯定为null ,因为B调用这个Get,而他本身所处的gameObject本没有A这个脚本组件,A的实例在另一个物体上。 估计这是你报错的一个原因。
(2)用static声明全局变量似乎没必要,static的作用应该是让变量在类被实例之前就得到实例化。用static的话,那么应该是要达到这样的目的,即用类名直接调用变量或函数(Mathf类里面的很多数学数值和函数都是这样的例子),你这个情况如果用了static那就最好应该为了这样的目的:
ARoadnodecount
(3)实时 *** 作数组,最好用List<>,具体可以参考msdn List的用法,
(4)如果你的目的只是为了让B能够通过代码访问A的变量,一般的public 变量就足够,其余你只需要解决B通过何种途径正确访问A。比如,你可以把A做成singleton:
static A instance;
在Ajs中用静态声明 static var 变量:bool;
然后在Bjs中直接用 B变量 调用;
或者用 GameObjectFind("gameobject名字")GetComponent(A)变量 调用;
"另一个脚本的变量"
Class Class_A{
public A;
}
Class Class_B{
Class_B class_b;
class_bA=null;
}
using UnityEngineUI;
string textValue = gameObjectGetCompenenet<InputField>()text;
建一个脚本 复制上面的代码 把脚本放在InputField对象上 textValue 里就是输入文本框的字符串
继承了MonoBehaviour的类是不需要你去实例化的,挂在GameObject上有awake和start会走unity的实例化MonoBehaviour的流程。所以你继承了MonoBehaviour的类加泛型是没有意义的。GetComponent<T>的T就是组件类型,比如Transform,你就理解为MonoBehaviour获得泛型组件的方法。unity的GetComponent<T>中的T都是继承自MonoBehaviour
以上就是关于Unity怎么获取一个有参数的方法全部的内容,包括:Unity怎么获取一个有参数的方法、unity3D里面怎么在一个脚本中时时获取另一个脚本中的变量 我在A.js脚本里有一个布尔变量,、Unity3D中在一个脚本中怎么获得另一个脚本中的变量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)