C# Unity3d中的重写方法
我正在尝试这样做:C# Unity3d中的重写方法,c#,unity3d,C#,Unity3d,我正在尝试这样做: tabs.addTab(new Tab("Test1") { public override void OnGUI() { //My code here } }); 我在java上做过很多次(在创建对象时重写函数),但现在我使用Unity和C#,我试图找到如何做它或它的等价物 感谢阅读,有什么想法吗?我认为在c#中初始化新对象时不可能重写方法。为了做到这一点,您应该首先继承tab类,然后重写OnGUI方法,假设该方法未声明为pri
tabs.addTab(new Tab("Test1")
{
public override void OnGUI()
{
//My code here
}
});
我在java上做过很多次(在创建对象时重写函数),但现在我使用Unity和C#,我试图找到如何做它或它的等价物
感谢阅读,有什么想法吗?我认为在c#中初始化新对象时不可能重写方法。为了做到这一点,您应该首先继承tab类,然后重写OnGUI方法,假设该方法未声明为private等。
public class MyTab : Tab
{
public override void OnGUI()
{
//My code here
}
}
我不确定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
});
在base中运行public virtual void Update(){},并将其作为base.Update()运行 如果
OnGUI()
是Tab
类的一种方法-在选项卡
类本身中放置公共覆盖…
,如果您想为不同的选项卡实例提供自定义逻辑-注入委托/lambda/mmm,我理解这个想法,我现在就试试,谢谢。