講義メモ

・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から提供されている

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です