最近在使用unity的时候,遇到很多物体间数据交互的操作。网上的很多文章写得都不细,关键部位“打了码”,而且说的大都不对,让人烦躁。
总结一下方法:
大概两种情况,
1.脚本在同一个物体上时。这时候用 public static 类型的变量就可以轻松搞定。
2.脚本在不同的物体上。这个时候 public static 是不管事的,从C++底层原理上就说不通。因为在unity中,物体与物体间的交互是在GameObject类级别的,不同的物体间(因为脚本导致物体产生了多态)互相访问的时候,只能看到GameObject 层级,看不到多态附加的新特性。很多文章都没说一定要在同一个物体上,所以我写这篇文章,希望幸运的童鞋搜到之后可以少走弯路。
这个时候的一个取巧的办法是,使用gameObject类内部自带的变量,翻开圣典,看看GameObject的类成员变量,
(其中一部分)
这些都是可以访问到的,只要在你建立的GameObject里面有对应的组件就行。默认是必须有transform的,这些组件里面的public变量就是咱们的战场,position、rotation、scale,这些变量,足足够用了。如果还是不满足,只能使用sendmessage慢函数了。
我一直心存侥幸,希望能找到一个快速有效的办法实现该功能,但是试了很多次,都没有结果。
时间: 2024-10-11 21:13:22