![](/img/trans.png)
[英]C# / Unity Instantiate multiple GameObjects and move their position.x by +1
[英]Inheritance for multiple unity gameObjects C#
尽管我对python有一定的了解,但我对unity和C#还是陌生的。 我已经学习了C#的基本元素,并且目前正在尝试使用Unity 2d平台创建Pong游戏。 我不确定两个游戏对象(例如main_player
和computer_player
是否有一个简洁明了的方法从具有自己定义的功能(例如move()
的单个类player
继承?
您可以像这样创建一个班级播放器。
public class Player: MonoBehaviour {
public virtual void move(){
}
}
然后像这样继承它:
public class Computer_player:Player{
public override void move(){
base.move();
//Extra movement code goes here
}
}
您可以继承main_player的相同方法。 您可以在此处找到更多详细信息: https : //unity3d.com/learn/tutorials/topics/scripting/inheritance
您可以使用2种方法(抽象或接口)。
public interface IMove{
void Move();
}
public class Main_player:MonoBehaviour, IMove{
public void Move(){}
}
public class Computer_player:MonoBehaviour, IMove{
public void Move(){}
}
您可以在接口上使用GetComponent,但不能使用Inspector中的插槽。 界面不可序列化,因此您无法使它们出现在编辑器中。
为此,您需要抽象。
public abstract class IMove : MonoBehaviour{
public abstract void Move();
}
public sealed class Main_player: IMove{
public override void Move(){}
}
public sealed class Computer_player: IMove{
public override void Move(){}
}
无论您将Move抽象还是虚拟制作,结果都非常相似。 如果具有默认实现,则使用虚拟,如果需要子类实现其自己的版本,则使用抽象。
此处更多内容: https : //docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/abstract
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.