2024年8月23日記録

8月 24, 2024

制御フローについて。

大枠として制御したいものが複数ある場合は大本の処理を実行するようする。
制御したいものが単数の場合は単数の方で処理を実行していい(単数内で処理を完結させていい。)。

Q.

public class Cat : Animal{}
public class Animal : ScriptableObject
public class Shop{
[SerializeField]
Animal _animal;
public Animal GetAnimal(){
return _animal;
}
}

public class Person{
Animal _pet;
Initialize(Animal pet){_pet = pet}
}

//どこかで
personInstance.Initialize(Shop.GetAnimal());

Animalクラスの_animalにはCatクラスをインスペクターから設定した場合、

Personoクラスにあるフィールド_petはCatにキャストできるのか。

A.

Q.

Potion
H-Potion
Full Potion
の順になって欲しいのになぜか、Full Potionが先に来る。

A.

itemController.Initialize(item, this)はitem.GenerateShopItemController()で取得取得したItemControllerを参照しているから。

itnemController = Instantiate(itemController, _contentTransform);

とすれば、画面に表示されてるItemControllerを参照できるようになる。

Q.

インターフェースと継承の違い

A.

1.virtual属性を付けたメソッドは必ずしもoverrideしなくてよい。
「派生クラスで共通のクラスを持たせる」

インターフェースは同じ処理だったとしてもクラスごとに処理を書かないといけない。継承は親クラスに共通の処理をまとめられる。

ただし、派生クラスで必ずオーバーライドしなくていいので、派生クラスに特化した処理内容にし忘れることがある。

活動報告

Posted by admin