キノコが何か作るブログ

ゲーム・ドット絵・アプリなどを作ります

MENU

Unity6日目:バグの原因がわかった

staticのエラーを解決

他のstaticでないメソッドにアクセスする際はちゃんと参照取らないとダメだよ。っていうことを今日になってやっと理解しました。

//これは動かない
ScoreManager.ScoreUpdate(myPoint);

//これなら動く
GetComponent<ScoreManager>().ScoreUpdate(myPoint);

きちっとインスタンスかしたオブジェクトを参照しやがれ。ということみたいです。

ちなみに別オブジェクトのスクリプトを参照する場合は、下にも書いていますがオブジェクトを参照してからじゃないと動かないです。

エラーが出るとその先は実行されない

Unityはエラーが出た箇所から先のプログラムは飛ばされるらしいです。

JavaScriptの場合はエラーが出たらそもそも動かないか、もしくはその部分だけ飛ばして次のコードは実行されるので、Unityもそうだと思っていたが違った。

オブジェクトが参照できない

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

2日前からよくわからなかったエラーですが、やっと解決しました。

別のオブジェクトに付いてるScriptの関数を実行しようとして、このエラーが出てきました。

間違え

Scriptを取得するために書いたのが下のコードです。

ScoreManager sm = GetComponent<ScoreManager>();

これではダメで、別のオブジェクトに付いているScriptを参照する場合は、そのオブジェクトを取得してからでないとScriptを取得することができません。

完成

//完成版
//Scriptが入っているオブジェクトを取得
GameObject scoreManagerObj = GameObject.Find("ScoreManagerObject");
//オブジェクトからScriptを取得
ScoreManager scoreManager = scoreManagerObj.GetComponent<ScoreManager>();
//Scriptを実行
scoreManager.ScoreUpdate(myPoint);

f:id:mizukinoko:20201216190345g:plain

文字をデカくすると消える

Overflowというところをいじると、枠を飛び出しても消えずに表示されるようになります。
f:id:mizukinoko:20201216150245p:plain

Unityの勉強が間に合わない

1week で馬鹿にされるのが見える。

ぶっちゃけUnity始めて1週間でGameJamに参加するのって明らかに無謀な気がする。

やるまえは普通にいけると思ったけど、やってみたらやっぱり無理そうだわ。っていうのが僕の人生の大半を占めている気がする。

まあ1week やりますけどね。ただこっそりやります。だって恥ずかしいから。

宣言したのにやらないのは数少ない読者に失礼ですし。

あと5日で始まりますが、せいぜい頑張ります。

プライバシーポリシー