天天看點

Roll a Ball 項目中遇到的問題

原文位址:https://support.unity3d.com/hc/en-us/articles/207020693-Problems-with-Project-Roll-a-Ball-

症狀

當試着學習Roll a Ball教程裡,遇到了許多問題。其中的一些羅列于下方:

  • 問題1
    • 遇到了NullReferenceException
  • 問題2
    • Console視窗裡有腳本錯誤(黃色的三角形:此Behaviour引用的腳本丢失!)
  • 問題3
    • 想要給遊戲添加多個關卡
  • 問題4
    • 球體并不收集可收集物體,而是直接穿透了方塊。

原因

問題1和問題2

你可能把Start函數的S寫成小寫的s,導緻了NullReferenceException錯誤;或者把FixedUpdate函數的F寫成小寫的f,導緻了該Behaviour引用的腳本丢失錯誤。當你得到NullReferenceException錯誤,這意味着有個變量沒有被指派。這在C#文法上是正确的,但是任何理應在此函數裡指派的變量并沒有指派。

Roll a Ball 項目中遇到的問題

問題2

你丢失了附加到GameObject上的腳本。

Roll a Ball 項目中遇到的問題

問題3

你不知道該如何給遊戲添加關卡。

問題4

OnTriggerEnter函數寫錯了。

解決方案

問題1,2,4

如果你寫的Start函數沒有大寫S,那麼隻需把小寫的s改成大寫的S。就這麼簡單!如果是FixedUpdate函數遇到這樣的問題,隻要像修改Start函數名那樣做就行。當你程式設計時,你要小心打字錯誤,區分大小寫很重要。還有,請确認你在每一行末尾都寫了分号(;)。另一方面,如果你寫了onTriggerEnter,那麼隻要改成OnTriggerEnter。

問題2

點選齒輪下方、文本域右邊的圓圈,然後選擇GameController腳本。

問題3

把關卡當成場景。這樣一來,如果你想要添加關卡,隻需要建立一個新的場景。(記得在轉到新場景前儲存你正在工作的場景。)想要加載一個關卡,你需要把它加到遊戲所使用的關卡清單中,通過File->Build Settings菜單項,把目前場景添加到建構目标中。然後,當你想加載關卡時使用如下的代碼:

Application.LoadLevel("example");

更多資訊

http://docs.unity3d.com/ScriptReference/Application.LoadLevel.html

本篇文章适用于Unity 5.x版本。

繼續閱讀