Наследование unity
Есть класс который наследуется от базового.Нужно вызвать метод наследника в базовом классе.Я думаю,что неправильно объявляю ссылку на наследника в базовом(private ClassName name).
public class ParadoxUI : MonoBehaviour
{
private JustGenerate justGenerate;
private void Start()
{
justGenerate.Reloading();
}
}
public class JustGenerate:ParadoxUI
{
public void Reloading()
{
int luckyNumber = Random.Range(0, 3);
switch (luckyNumber)
{
case 0:
dr1 = true;
dr2 = false;
dr3 = false;
break;
case 1:
dr1 = false;
dr2 = true;
dr3 = false;
break;
case 2:
dr1 = false;
dr2 = false;
dr3 = true;
break;
}
}
}
Ответы (1 шт):
Автор решения: Yaroslav
→ Ссылка
В классе ParadoxUI есть поле типа JustGenerate которое наследуется от ParadoxUI... WTF? Змея съела свой хвост.
public class MyClassA : MonoBehaviour {
protected virtual void MethodA () {
Debug.Log("MyClassA - MethodA");
}
protected virtual void MethodB () {
Debug.Log("MyClassA - MethodB");
}
}
public class MyClassB : MyClassA {
private void Start () {
this.MethodA(); // this не обязательно
MethodB();
base.MethodA();
}
protected override void MethodA () {
Debug.Log("MyClassB - MethodA");
}
}
Log:
MyClassB - MethodA
MyClassA - MethodB
MyClassA - MethodA