【发布时间】:2017-11-15 21:34:08
【问题描述】:
我有两节课
public class Singleton<T> : MonoBehaviour where T : Component
{
protected static T _instance;
public static T Instance
{
get
{
return _instance;
}
}
}
和
public class GameManager : Singleton<GameManager>
{
// Lots of Methods and Properties...
}
我想创建 3. 派生自 GameManager 的类,例如 ShooterGameManager。我可以用
创建 ShooterGameManagerpublic class ShooterGameManager : GameManager
{}
但 Instance 仍然是 GameManager !!!, 我尝试使用泛型类添加额外的类定义。
public class GameManager<T> : Singleton<T> where T : Component
{}
但是这次有 2 个完全不同的类可用,没有从 GameManager 继承。 我该怎么办???
【问题讨论】:
-
什么意思但Instance仍然是GameManager?
-
创建GameManager对象时,VisualStudio中Instance类型为GameManager,但创建ShooterGameManager时Instance类型仍为GameManager。我可以像“(ShooterGameManager)Instance”一样使用,但有很多使用,有没有办法将Instance type更改为ShooterGameManager
-
公共类 ShooterGameManager : GameManager {}
-
代码正在运行,但我需要将实例类型更改为 ShooterGameManager 在 VisualStudio,我可以像 (ShooterGameManager)Instance 一样使用
-
对不起,来自 Unity 项目的代码,你需要 Unity 才能运行,在我身上它工作没有任何错误,我只是不知道如何使用泛型类编写代码
标签: c# unity3d singleton instance generic-programming