[0]可能问题没有描述清楚继续讨论一下吧

https://ask.layabox.com/question/52137
继续上一个帖子讨论一下
onAdded方法只会执行一次,因为是想每次onEnable的时候都去执行,这样逻辑就只用统一在onEnable里面去写,如果用onAdded的话,onEnable方法里面还要写一遍。
 
test脚本执行onEnable的时候它的active是false,显然这个位置是可以做优化处理的
 
重新传个更优说服力的demo
 
已邀请:

layabox

赞同来自:

这不是BUG,是你没有理解组件的与组件生命周期导致的。
 
组件的激活流程,在onEnable之前已经完成了,这时候你再设置不是没生效,而是按流程,已经启动过一次了,你才会误以为无效了。你可以加一个点击事件或别的你测一下,就明白了,后续的脚本已经停止响应。
 
如果你连onEnable之前的组件事件,也不想启动。想着一开始就要禁用。无论你是在你那个示例的根节点脚本Main中,还是图像组件脚本的test中,只要你是在onAdded生命周期里去控制图像的脚本active状态,就都可以满足你的需求。至于用于图像显示的visible,你什么时候控制都行。这是节点对象的控制,不涉及脚本流程。
 
如果你不想在onAdded里多写一次的active的状态,想每次在onEnable里控制,完全可以在编辑器里就把UI对象的激活状态给默认的勾选去掉,如下图所示。这样默认就是不激活状态,你可以通过onEnable里每次进行控制。

tresss.png

 

1567600631用户

赞同来自:

我认为你要的是onAwake 他这个onEnable和激活无关系

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作