所以我開始學習Swift,但是我發現我想使用Unity3d,因爲它看起來很有趣學習,對於遊戲來說,它看起來比Xcode更好。這意味着我必須學習一種新的語言,但是,我開始學習C#。在我的項目中,我有兩個班。如何在Unity3d MonoDevelop中使用繼承?
我的第一堂課是LivesDetract。這個類是邊緣對撞機。它捕獲掉落的物體,並減少壽命量:
public class LivesDetract : MonoBehavior {
public int currentLives; //set to 3 in Unity
private int livesDecrementAmnt = 1;
void OnTriggerEnter2D (Collider2D other) {
currentLives = currentLives - livesDecrementAmnt;
}
}
第二個類被命名爲GameController。 GameController控制着遊戲的流程。我最初將LivesDetract作爲GameController的一部分,但爲了組織目的,我認爲它應該在它自己的類中。問題是,我得到以下錯誤,當我嘗試從類LivesDetract繼承:
錯誤: 「的對象引用需要非靜態字段,方法或屬性‘LivesDetract.currentLives’」
public class GameController : MonoBehavior {
IEnumeratorSpawn() {
while(LivesDetract.currentLives > 0) { // This line is where the error occurs
//Game Actions Occur
}
}
}
我想我已經提供了足夠的信息,但如果需要更多信息,請告訴我。 在斯威夫特我是能夠設定的功能作爲一個變量:
var livesDetract = LivesDetract()
然後我可以使用:
while livesDetract.currentLives > 0 {
}
似乎不是在C#中的工作,雖然。
是不是實例化用於創建對象的克隆?我不想克隆對撞機。 – QuirkyCoder
我並不是說你需要使用這種方法。如果這是一個遊戲對象,你可能需要先找到它。 http://docs.unity3d.com/ScriptReference/GameObject.Find.html – gabriel