'UnityEngine.Component.rigidbody' is obsolete.発生時の対処法

addforce_is_not_member-845
Pocket

Unity入門【第4回】ブロック崩しを作ろうでゲームを作成していた時に発生したエラーの対処法です。Unity5.4でのエラー内容です。

スポンサーリンク

'UnityEngine.Component.rigidbody' is obsolete.

unity-error

「BallScriptを作成して記述」時に発生するエラーです。スクリプトの以下の箇所を変更することにより、対処できます。

  • rigidbody → Getcomponent.<Rigidbody>()に変更
  • 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を自動取得しなくなった為、自分で記述する必要があります。

    'UnityEngine.Application.LoadLevel(string)' is obsolete

    unity-error2

    「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クラスを使用する必要があります。

    スポンサーリンク

    feedly、RSSをフォローする