Unity: “NullReferenceException: Object reference not set to an instance of an object”的可能解決方法
2016-04-09 15:06
603 查看
昨晚才成功的解決大量敵人的生成問題開心的趣睡覺後 一早起來卻又遇到”NullReferenceException: Object reference not set to an instance of an object”這個非人類語言所能理解的錯誤訊息 每次一遇到莫名奇妙的bug時 身體不由得會開始不舒服的開始冒汗 嚴重時胃部會開始抽痛 然後bug的難度(所需解決的時間) 會與負面情緒呈正比成長 有時還會出現乾脆放棄的黑暗想法
不過 由於好奇心與不服輸的心態 還是驅使我繼續前進… 說了廢話一堆 以下為可能的解決方式
照例 會先去Google一下 果不其然 有一堆人有此問題 但並沒有一個剛好是類似我的狀況 不過我還是歸納了一下 大家可能狀況的關鍵字:
null
GetComponent()
Clone
Awake(), Start(), Update()
其中最引起我注意的是Awake(), Start(), Update() 這位網友所提供(Click
me)的 本以為應該就是這個了 但還是沒那麼幸運 決定用老方法: 先出去運動
…2小時後
在運動時不斷反覆思考以上幾個關鍵字 後來想到可能的問題出在哪
回到家 載入舊專案版本(舊版是沒有”NullReferenceException: Object reference not set to an instance of an object”此問題的)與新專案版本比對後 發覺最大的差異在此:
舊版
新版(將所有場景物件整理到一個空物件Level1底下
並產生成Prefab)
人就是你殺的!!
所以將新版的層級關係恢復成舊版的樣子後就可解決此問題了!
據說 Unity在產生重複物件時 雖然表面上名字一樣 但實際上物件名稱後面會多了個”Clone”的字樣 (不知是否有點像是以前公司的程式人員告訴我說使用Phyre Station (for PS3) 開發遊戲時 在有些物件名稱後面要加上 -node的原因類似?)
不過 我並不能完全確定是Clone造成這樣的問題 我想Script應該有比我更正確的寫法來解決此問題
不過 由於好奇心與不服輸的心態 還是驅使我繼續前進… 說了廢話一堆 以下為可能的解決方式
照例 會先去Google一下 果不其然 有一堆人有此問題 但並沒有一個剛好是類似我的狀況 不過我還是歸納了一下 大家可能狀況的關鍵字:
null
GetComponent()
Clone
Awake(), Start(), Update()
其中最引起我注意的是Awake(), Start(), Update() 這位網友所提供(Click
me)的 本以為應該就是這個了 但還是沒那麼幸運 決定用老方法: 先出去運動
…2小時後
在運動時不斷反覆思考以上幾個關鍵字 後來想到可能的問題出在哪
回到家 載入舊專案版本(舊版是沒有”NullReferenceException: Object reference not set to an instance of an object”此問題的)與新專案版本比對後 發覺最大的差異在此:
舊版
新版(將所有場景物件整理到一個空物件Level1底下
並產生成Prefab)
也就是說 新版是PREFAB 舊版不是
人就是你殺的!!所以將新版的層級關係恢復成舊版的樣子後就可解決此問題了!
據說 Unity在產生重複物件時 雖然表面上名字一樣 但實際上物件名稱後面會多了個”Clone”的字樣 (不知是否有點像是以前公司的程式人員告訴我說使用Phyre Station (for PS3) 開發遊戲時 在有些物件名稱後面要加上 -node的原因類似?)
不過 我並不能完全確定是Clone造成這樣的問題 我想Script應該有比我更正確的寫法來解決此問題
相关文章推荐
- [Unity游戏开发]向量在游戏开发中的应用(三)
- Unity组件的基类单例模式
- Unity3D 学习笔记6 ——协程
- Unity协程(Coroutine)原理深入剖析
- Unity3d发布WebGL 部署在IIS
- Unity frameIndex = (int)(timer / (1f / framePerSecond));
- unity源码解析Material
- Disunity_V0.5.0 提取Unity生成的APK资源的后续探索
- [Unity3D]Unity3D游戏开发之使用EasyTouch虚拟摇杆控制人物移动
- Unity删除工程记录
- Unity3D中继承在ios上的UIApplicationDelegate
- [Unity] 协同程序可以在Update或者FixedUpdate中调用。
- Unity3D教程宝典之Shader篇:特别讲 CG函数
- Unity3d 动态加载fbx模型文件
- Unity读取本地图片资源
- [Unity] 官方文档Execution Order of Event Functions
- Unity3d发布webplayer 部署到IIS
- [Unity] 官方文档Coroutines的应用场景
- Unity3d发布webplayer 部署到IIS
- Unity3D 中PlayerPrefs保存或读取数组的方法