新手提问
unity3d吧
全部回复
仅看楼主
level 4
新建cube01,挂上demo99脚本,脚本代码如下
新建cube02,挂上demo98脚本,脚本代码吐下:
出现异常:
正常应该在控制台打印1,但是出现空索引异常。
请指教。
2022年06月27日 04点06分 1
level 12
GetComponent是获取物体本身上的组件,cube02上根本没有demo99,报错才是对的
2022年06月27日 05点06分 2
老哥给看看楼下,改成FindObjectOfType之后不会异常,但是a值为0不为1.
2022年06月27日 08点06分
level 9
请问谁给你说的正常应该在控制台打印1呢
2022年06月27日 06点06分 3
level 8
GetComponent 只能获得当前游戏物体上面的组件 不能获得其它游戏物体上面的组件
你如果你想获得其它游戏物体上的组件
应该先用GameObject.Find( "其它游戏物体名" );找到这个游戏物体
再通过找到的这个游戏物体 调用GetComponent 获得 你想要的那个组件
2022年06月27日 07点06分 5
level 7
GetComponent有什么用,你说说看[汗]
2022年06月27日 08点06分 9
level 4
吸收楼上老哥的说法,demo98我改成这样:
但是结果仍让不为一,的确是能找到,但是a是初值0:
不应该是1吗?
2022年06月27日 08点06分 10
你都是在start里赋值,顺序问题,获取的时候还没给a赋值
2022年06月27日 09点06分
@愿守一方天地朽 我前面那个改成awake结果也是一样
2022年06月27日 09点06分
@何处一夜孤萧 那你场景中的demo99不止一个吧,获取的是第一个
2022年06月27日 09点06分
@愿守一方天地朽 就一个啊,没有其他的
2022年06月27日 10点06分
level 11
干嘛不在定义时候就令a=1,严格来说同一个脚本里的Awake比Start先执行,一般自己整个Manager把控执行流程
2022年06月27日 11点06分 12
1