UnityでRPGを作ってみる

UnityでRPGを作ってみる

NullReferenceException: Object reference not set to an instance of an object

エラー内容

NullReferenceException: Object reference not set to an instance of an object・・・

書いたコード

 

    public class BattleCharacter
    {

        BattleCharacter()
        {
            obj = null;
            lev = 0;
        }
    }

    BattleCharacter chara = new BattleCharacter[16];

    // Use this for initialization
    void Start () {

        chara[0].lev = 15;

  (以下略)

 ポイント

 

  • 原因は初期化してないclass配列に対してアクセスしようとしてるから(chara[0].lev = 15; のところ)
  • class配列はコンストラクタでの初期化は明示的に書いてやらないといけない(らしい)
  • そもそも構文が間違ってる

解決策

    public class BattleCharacter
    {
        public GameObject obj;
        public int lev, hp, atk, def, spd, acc, rdg, mag;
        public int exp;

        public BattleCharacter()
        {
            obj = null;
            lev = 0;
        }
    }

    BattleCharacter chara = new BattleCharacter[16];

    // Use this for initialization
    void Start () {

        chara[0] = new BattleCharacter();

        chara[0].lev = 15;

 参考:

https://qiita.com/scnsh/items/8eb80000267ac99d2bf4