Переопределение методов в Unity3d - PullRequest
1 голос
/ 20 марта 2012

Я пытаюсь сделать что-то вроде этого:

tabs.addTab(new Tab("Test1")
{
    public override void OnGUI()
    {   
       //My code here
    }
});

Я делал это много раз на Java (переопределить функцию при создании объекта), но теперь я использую Unity с C #,и я пытаюсь найти, как это сделать или его эквивалент.

Спасибо за чтение, Есть идеи?

Ответы [ 3 ]

2 голосов
/ 20 марта 2012

Я не уверен, позволяет ли C # переопределять методы при создании нового объекта, но вместо этого вы можете использовать делегаты.

Делегат - это переменная, в которой функция хранит свое значение.Нечто подобное должно делать более или менее то, что вы ищете

class Tab
{
    public delagate void MyOnGUI(); // Declare the delegate

    private MyOnGUI onGUI;  // An instance of the delegate

    public Tab(string s, MyOnGUI onGUI)
    {
        this.onGUI = onGUI;
        //...
    }

    public void OnGUI()
    {
        onGUI(); // Call the delegate
    }
}
// ...

tabs.addTab(new Tab("test", delegate(){
    // Your code here
    });
0 голосов
/ 09 сентября 2014

публичный виртуальный void Update () {} в базе и запуск его как base.Update ();

0 голосов
/ 20 марта 2012

Я не думаю, что можно переопределить метод при инициализации нового объекта в c #. Для этого вы должны сначала унаследовать класс табуляции, а затем переопределить метод OnGUI, предполагая, что этот метод не объявлен как закрытый и т. Д.

public class MyTab : Tab
{
    public override void OnGUI()
    {
        //My code here
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...