如何在Unity3d MonoDevelop中使用继承?

时间:2016-04-22 18:02:24

标签: c# swift inheritance monodevelop unity5

所以我开始学习Swift,但我发现我想使用Unity3d,因为它看起来很有趣,对于游戏来说它看起来比Xcode更好。这意味着我必须学习一门新语言,所以我开始学习C#。在我的项目中,我有2个班级。

我的第一堂课是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
       }
    }
}

我想我已经提供了足够的信息,但如果需要更多信息,请告诉我。 在Swift中,我能够将函数设置为变量:

var livesDetract = LivesDetract()

然后我可以使用:

while livesDetract.currentLives > 0 {
}

但这似乎不适用于C#。

1 个答案:

答案 0 :(得分:0)

您正在尝试访问currentLives而不实例化该对象。在使用它之前,您需要在Unity中找到该对象。