tabs.addTab(new Tab("Test1")
{
public override void OnGUI()
{
//My code here
}
});
我已经在java上做了很多次(在创建对象时覆盖了一个函数),但是现在我正在使用Unity和C#,我正试图找到如何做它或它的等价物。
感谢阅读,不知道吗?
答案 0 :(得分:2)
我不确定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
});
答案 1 :(得分:0)
我不认为在c#中初始化新对象时可以覆盖方法。为此,您应首先继承选项卡类,然后重写OnGUI方法,假设此方法未声明为私有等。
public class MyTab : Tab
{
public override void OnGUI()
{
//My code here
}
}
答案 2 :(得分:0)
public virtual void Update(){}并将其作为base.Update();
运行