在unity中不乏需要用到单例模式的架构,同时unity中也不乏需要用到委托事件的场景,下面针对“鼠标点击”展开说明
关于鼠标举个例子有3种常见的事件:
1、鼠标左键点击某物体
2、鼠标右键点击某物体
3、鼠标悬停某物体(常见于UI,悬停某装备图标显示详细说明)
我们只需要在鼠标管理单例(发布者)中添加相应的委托和事件、同时在需要响应交互的游戏物体(订阅者)(如NPC,掉落的装备)注册相应的事件即可
首先需要创建一个泛型单例以供以后的管理类拓展:
public class singleton<T> : MonoBehaviour where T:MonoBehaviour
{
private static object syncID = new object();
private static volatile T instance;
public static T Instance
{
get
{
if (instance == null)
{
lock (syncI