本文介绍了使用枚举时找不到类型或名称空间名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
单个脚本:
public static ShipSingleton Instance { get { return _instance; } }
private void Awake()
{
if (_instance != null && _instance != this)
{
Destroy(this.gameObject);
}
else
{
_instance = this;
DontDestroyOnLoad(this.gameObject);
}
}
public enum Ship
{
BasicShip
};
public Ship spawnShipID;
Spawner对象
public GameObject basicShip;
void Start()
{
if (ShipSingleton.Instance.spawnShipID == ShipSingleton.Ship.BasicShip)
{
Instantiate(basicShip, transform.position, Quaternion.identity);
}
}
按钮脚本
public Ship ShipID = ShipSingleton.Ship.BasicShip;
public void shipchoice()
{
SceneManager.LoadScene("watcherqueen");
ShipSingleton.Instance.spawnShipID = ShipID;
}
继续收到此错误:
按钮脚本中是否可能缺少对公共枚举的引用?
Is it possible I am missing a reference to the public enum in the button script?
推荐答案
哦,我明白了现在的问题(我也会在另一个问题中解决它)-
Oh, I see what the problem is now (and I'll fix it in the other question too) --
此行需要引用ShipSingleton.Ship
,而不仅仅是Ship
:
This line needs to reference ShipSingleton.Ship
instead of just Ship
:
public Ship ShipID = ShipSingleton.Ship.BasicShip;
所以它应该像这样:
public ShipSingleton.Ship ShipID = ShipSingleton.Ship.BasicShip;
这是因为枚举类型Ship
是ShipSingleton
的成员.如果像这样在名称空间级别声明Ship
,则没有必要:
This is because the enum type Ship
is a member of ShipSingleton
. It would not be necessary if Ship
were declared at the namespace level like this:
public enum Ship
{
BasicShip
};
public class ShipSingleton
{
public static ShipSingleton Instance { get { return _instance; } }
private void Awake()
{
if (_instance != null && _instance != this)
{
Destroy(this.gameObject);
}
else
{
_instance = this;
DontDestroyOnLoad(this.gameObject);
}
}
Ship spawnShipID;
}
这篇关于使用枚举时找不到类型或名称空间名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!