|
|
(同じ利用者による、間の35版が非表示) |
行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();
| + | |
− | | + | |
− | ==オブジェクトクラスインスタンス生成方法==
| + | |
− | GameObject gameObj = new GameObject();
| + | |
− | ComScript sc = gameObj.AddComponent<ComScript>();
| + | |
− | sc.Exec ();
| + | |
− | | + | |
− | ComScriptはMonoBehaviourを継承している必要がある。
| + | |
− | | + | |
− | 継承てない場合は、以下エラーが出る
| + | |
− | 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/画像ロード]] [ショートカット] | + | |
− | | + | |
− | ==オブジェクトについてるcsを呼び出し実行する方法==
| + | |
− | GameObject obj = transform.Find ("/mc/mc1").gameObject;
| + | |
− | ComScript sc = gameObj.GetComponent<ComScript>();
| + | |
− | sc.Exec ();
| + | |
− | | + | |
− | ==プロパティ名を文字列に==
| + | |
− | Debug.Log(nameof(Example.Hoge)); // Hoge
| + | |