![](/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.