「Unity/Csharp/クラス」の版間の差分

提供: 初心者エンジニアの簡易メモ
ナビゲーションに移動 検索に移動
編集の要約なし
 
(同じ利用者による、間の40版が非表示)
1行目: 1行目:
==クラスやプロパティ==
[[Unity/Csharp/クラス/基本]]
public class CanvasScript : MonoBehaviour {
private int cnt = 1;
void Start () {
Debug.Log("helloworld" + cnt);
Add(10, 15)
}
void Update () {
}
public int Add(int x, int y) {
return x + y;
}
}


メンバはpublicとprivateがあり省略するとprivateになる。
[[Unity/Csharp/クラス/アクセス修飾子]]


==単純クラス==
[[Unity/Csharp/クラス/クラス分割]]
public class Animal {
private int footCnt = 4;
public void Init () {
}
public void SetFootCnt(int cnt) {
footCnt = cnt;
}
public int GetFootCnt(int cnt) {
return cnt;
}
}


==継承と基底クラスのメソッドへのアクセス==
[[Unity/Csharp/クラス/継承元から継承先実行]]
base.を使う


abstract class Animal
[[Unity/Csharp/クラス/インターフェイス]]
{
    public virtual void Call()
    {
    }
}
class Cat : Animal
{
    public override void Call()
    {
        base.Call();
    }
}


==単純クラスインスタンス生成方法==
[[Unity/Csharp/クラス/引数可変]]
Animal animal = new Animal();


==オブジェクトクラスインスタンス生成方法==
[[Unity/Csharp/クラス/Tuple]]
GameObject gameObj = new GameObject();
ComScript sc = gameObj.AddComponent<ComScript>();
sc.Exec ();


ComScriptはMonoBehaviourを継承している必要がある。
[[Unity/Csharp/クラス/クラスメンバfor取得]]


継承てない場合は、以下エラーが出る
[[Unity/Csharp/クラス/ジェネリックメソッド]]
error CS0311: The type `ComScript' cannot be used as type parameter `T' in the generic type or method `UnityEngine.GameObject.AddComponent<T>()'. There is no implicit reference conversion from `ComScript' to `UnityEngine.Component'


==新規画像インスタンス生成方法==
[[Unity/Csharp/クラス/ジェネリックインターフェース]]
[[Unity/Csharp/画像ロード]] [ショートカット]
 
==オブジェクトについてるcsを呼び出し実行する方法==
GameObject obj = transform.Find ("/mc/mc1").gameObject;
ComScript sc = gameObj.GetComponent<ComScript>();
sc.Exec ();
 
==プロパティ名を文字列に==
Debug.Log(nameof(Example.Hoge)); // Hoge

2025年5月9日 (金) 04:21時点における最新版