・p.62「エラーメッセージを読み解こう」から
ミニ演習 mini062
・p.62「エラーが発生しているスクリプト」を試そう
using UnityEngine;
public class mini062 : MonoBehaviour{
void Start(){
int kazu = 10;
kazu = kazo * kazu;
Debug.Log(kazu);
}
void Update() {}
}
解説
・名称未発見のような単純な文法エラーであれば、C#(VS)側では日本語で、Unity側でもほぼ同じ意味の英語でエラー内容が示される。 ・なお、エラーの位置情報はUnity側で表示されるが、これはエラーの発生場所であり、修正すべき場所がそこであるとは限らない
ミニ演習 mini062・続き
・p.62「エラーが発生しているスクリプト」を修正しよう ・それから、p.63のエラーメッセージが表示されるスクリプトにしよう
using UnityEngine;
public class mini062 : MonoBehaviour{
void Start(){
int kazu = 10;
kazu = kazu * kazu;
Debug.Lag(kazu); //LogをLagと打ち間違えている
}
void Update() {}
}
ミニ演習 mini062・続き2
・p.63のエラーメッセージが表示されるスクリプトを修正しよう ・p.33の説明のとおり「using UnityEngine;」を省略(コメントアウト)してみよう
//using UnityEngine;
public class mini062 : UnityEngine.MonoBehaviour{
void Start(){
int kazu = 10;
kazu = kazu * kazu;
UnityEngine.Debug.Log(kazu); //名前空間指定でクラスのメソッドを呼ぶ
}
void Update() {}
}
ミニ演習 mini062・続き3
・p.64のエラーメッセージが表示されるスクリプトにしよう
using UnityEngine;
public class mini062 : MonoBehaviour{
void Start(){
int kazu = 10.1; //暗黙の型変換ができないのでエラー
kazu = kazu * kazu;
Debug.Log(kazu);
}
void Update() {}
}
型があっていないときに表示されるエラー
・double型の値や変数をint型の変数に代入すると、小数点以下の情報が失われてしまうので、エラーとなる ※ 言語によってはエラーにならず、小数点以下の情報をカットするものもある ・なお、小数点以下がゼロである実数リテラルであっても、整数と実数の扱いの違いから、同じ意味のエラーになる
ミニ演習 mini062・続き4
・p.64のエラーメッセージが表示されるスクリプトを修正しよう ・int型へのキャストを追記すること
diffツールでスクリプトの間違いをチェックする
・2つのテキストの差異を表示してくれるオンラインツール https://www.diffchecker.com/ ・なお、オフラインツールがWindowsから提供されている