Unity入門【第4回】ブロック崩しを作ろうでゲームを作成していた時に発生したエラーの対処法です。Unity5.4でのエラー内容です。
'UnityEngine.Component.rigidbody' is obsolete.
「BallScriptを作成して記述」時に発生するエラーです。スクリプトの以下の箇所を変更することにより、対処できます。
if (Input.GetButtonUp("Jump") && GetComponent.<Rigidbody>().velocity == Vector3(0, 0, 0)) { GetComponent.<Rigidbody>().AddForce((transform.forward + transform.right) * Speed, ForceMode.VelocityChange); }
エラーの理由として、通常だとコンポーネントはGetComponentを使って取得する必要があります。しかし、Unity4まではGetComponentを記述しなくても、Rigidbodyは自動で取得されていた為、GetComponentを記述する必要がありませんでした。
Unity5からRigidbodyはUnity側でGetcomponentを自動取得しなくなった為、自分で記述する必要があります。
Unityのよくある質問【初心者向け】-質問7.【スクリプト】gameObjectとかtransformって何ですか?-
Unity Documentation-Rigidbody.AddForce-
Unity Documentation-Rigidbody.AddForce-
'UnityEngine.Application.LoadLevel(string)' is obsolete
「GameOverシーンに移動するようBottomWallScriptを編集」時に発生するエラーです。スクリプトの以下の箇所を変更することにより、対処できます。
- import UnityEngine.SceneManagement;を追加
- Application.LoadLevel → SceneManager.LoadSceneに変更
import UnityEngine.SceneManagement; ~~~ else if (script.life == 0) { SceneManager.LoadScene("GameOver"); }
エラーの理由として、Unity5.3からApplication.LoadLevel自体が非推奨となりました。今後はシーン遷移については、SceneManagementクラスを使用する必要があります。