所以我开始学习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#中不起作用。
最佳答案
您尝试访问currentLives而不实例化该对象。您需要先在Unity中找到该对象,然后才能使用它。