关于unity中的类

最近看一些代码,经常需要在一个脚本中调用其他脚本中的属性或方法,有两种调用方法:

一种直接用ClassName.method(),

另一种用ClassName cn=(ClassName)FindObjectOfType (typeof(ClassName)); cn.method();

这两种方法区别:

第一种要调用的方法或属性需要声明为static,否则编译不通过。这个类没有实例化,只是放在游戏中单独的一块内存中,当然Awake(), Start()等相关函数也不会自动执行。

第二种要调用的方法或属性不能声明为static,否则编译不通过。这个类被游戏对象绑定了,已经实例化,代码存放在被绑定的游戏对象区域,所调用的属性或方法跟这个对象有关。


如在游戏中如需保存一些全局设置,要么直接写一个脚本,不跟任何对象绑定,将脚本中变量声明为非static;

或者创建一个空对象,然后绑定一个脚本,脚本中的变量声明为static。

不知道这两种方法有木有区别,欢迎补充。微笑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章