場景中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里,把這個分幀動畫設置為初始狀態, 那么無需代碼,一啟動就走到這個
動畫狀態,直接給隱藏掉了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM