C# 如何使Unity Singleton通用?
我目前正在审查统一代码 我正在研究如何使单例通用 慢慢地,我从单身汉开始学习 在查看代码时,我有很多问题 就是这样:C# 如何使Unity Singleton通用?,c#,unity3d,C#,Unity3d,我目前正在审查统一代码 我正在研究如何使单例通用 慢慢地,我从单身汉开始学习 在查看代码时,我有很多问题 就是这样:公共类游戏singleton:monobhavior其中T:monobhavior 将MonoBehavior指定为类型参数T的约束意味着什么 以及 为什么在创建管理器时通常使用Singleton 以及 创建管理器时,公共类GameManager:GameSingleton{} 我使用这些代码,这是什么意思 以及 当这些被实现时,逻辑是如何流动的 就这些 我必须学习什么才能理解这些
公共类游戏singleton:monobhavior其中T:monobhavior
公共类GameManager:GameSingleton{}
作为一个初学者,我知道的不多。我需要你的帮助 1.
其中T:monoBehavior
,意味着该类使用的任何泛型都必须继承monoBehavior
,如果没有继承,您将得到编译时错误
2.根据我的经验,管理者通常是单身,因为他们有很长的资源启动时间。例如,如果您的管理器正在管理与
redis
服务器的连接,并且正在使用StackExchange redis nuget包。它们明确声明您应该只打开其中一个连接,因为它是线程安全的,并且具有相对扩展的创建方法
3. <代码>公共类Gamemanager:GameSingleton。{}这意味着您有一个继承了
GameSingleton
的Gamemanager
类,其中Gamemanager
作为通用类
4.为了理解遗传和泛型,我会学习
5.为了理解unity,我将研究1)这意味着您将要创建的单例的类型
T
必须继承自monobhavior
,否则您将得到编译错误
2) 因为通常您不希望特定的管理器在场景中出现多次(即实例数)。例如,设想一个ScriptManager
,它处理所有FixedUpdate
、Update
和LateUpdate
回调,而不是让Unity来处理它们:您不希望场景中出现多个这样的管理器。Singleton模式满足此条件(场景中的ScriptManager
实例不超过一个)
3) 这意味着您告诉编译器类型T
是GameManager
。如果您查看类GameSingleton
的代码,您将看到有一个私有静态T\u实例
,然后是一个公共静态T实例
属性等,GameSingleton
类知道\u实例
和实例
必须是GameManager
类型。此外,您可以通过更改类型T
(即:GameManager、ScriptManager、CubeManager等)来创建不同的管理器
4) 你需要学习C#泛型。取决于你使用的客户端。我不知道你的意思。你想和哪个聊天客户端聊天?谷歌闲逛,lync,gchat,旧式aol聊天。你想怎样聊天?我们也可以通过stackOh进行对话!!我想要stackoverflow chat.ROOM的名称是:Unity c#案例1,如果format参数的约束不是MonoBehavior,那么它在编译过程中是否会无条件失败?是否只是将MonoBehavior设置为约束以避免错误?案例2,案例3你能解释得更简单些吗?