场景中GameObject无法用代码隐藏问题(setActive为false)

GameObject不受代码控制隐藏问题:
代码中若对某个gameobject.setActive(false),发现会不起作用,总结下来发现是和object所在模型组的Animator组件的animation controller参数有关系,
如果把所在模型组的Animator组件的animation controll参数内容删掉,不让绑定到任何一个controller文件,这时运行代码时时可以控制物体隐藏的。

解决办法是:既然可以用unity自身动画系统来控制物体在动画中某一个阶段是否可以隐藏,那么就不考虑用写代码这种低效的方式,直接在模型组动画时间轴上
来设置物体是否隐藏(前提是这个模型组的动画是可以被编辑的,maya/max生成的动画不可在unity的动画时间轴上是只读的,不可编辑,土办法就是复制一份动画文件出来,和
animation controller里的某个状态绑定就可以编辑动画了)

在程序运行初始就想让某些物体隐藏掉,但又想用代码控制或者遇到我上面遇到的控制不了的情况,深层原因没有深究过,应该有办法,但这里提供一个不是很可取但能解决部分
问题的一个技巧:直接给模型组动画添加一个起始帧为0结束帧为1的分帧动画, 在animation controller里,把这个分帧动画设置为初始状态, 那么无需代码,一启动就走到这个
动画状态,直接给隐藏掉了。

posted @ 2017-04-13 15:58  居家懒人  阅读(2736)  评论(0编辑  收藏  举报