Unity3dRPG游戏鼠标指针管理系统【单利模式】(游戏中,不同状态对于不同指针)

类一:单例cursor类,脚本位于空物体
usingUnityEngine;
/// <summary>
/// 鼠标指针管理类【单利模式】(游戏中,不同状态对于不同指针)
/// </summary>
public class CursorManager : MonoBehaviour
{
    /// <summary>
    /// 私有静态成员
    /// </summary>
    private static CursorManager instance;

    /// <summary>
    /// 外部访问,公共静态成员(单例)
    /// </summary>
    public static CursorManager GetInstance
    {
        get { return instance; }
    }

    void Start()
    {
        //赋值单例
        instance = this;
    }

    /// <summary>
    /// 正常状态指针图
    /// </summary>
    public Texture2D cursorNormal;

    /// <summary>
    /// 对话状态指针图
    /// </summary>
    public Texture2D cursorNpcTalk;

    /// <summary>
    /// 攻击状态指针图
    /// </summary>
    public Texture2D cursorAttack;

    /// <summary>
    /// 锁定状态指针图
    /// </summary>
    public Texture2D cursorLockTarget;

    /// <summary>
    /// 拾捡物品状态指针图
    /// </summary>
    public Texture2D cursorPick;

    /// <summary>
    /// 指针默认点击热点位置(指针左上角)
    /// </summary>
    private Vector2 hotspot = Vector2 .zero;

    /// <summary>
    /// 指针类型(Auto:自动选择)
    /// </summary>
    private CursorMode mode = CursorMode .Auto;

    /// <summary>
    /// 设置默认指针显示图
    /// </summary>
    public void SetNormal()
    {
        // 1 显示的指针图 2 默认指针点击的热点位置 3 指针类型
        Cursor.SetCursor(cursorNormal, hotspot, mode);
    }

    /// <summary>
    /// player对话时的指针图
    /// </summary>
    public void SetNpcTalk()
    {
        // 1 显示的指针图 2 默认指针点击的热点位置 3 指针类型
        Cursor.SetCursor(cursorNpcTalk, hotspot, mode);
    }

}

类二:调用单例,脚本位于需要调用的游戏对象
using UnityEngine;
using System.Collections;

/// <summary>
/// 鼠标指针指定区域的指针图显示切换
/// </summary>
public class MouseCursor : MonoBehaviour
{
    /// <summary>
    /// 当鼠标进入指定触发区域的时候
    /// </summary>
    void OnMouseEnter()
    {
        //调用单例模式里的指针方法
        CursorManager.GetInstance.SetNormal();
    }

    /// <summary>
    /// 当鼠标指针离开指定触发区域的时候
    /// </summary>
    void OnMouseExit()
    {
        //调用单例模式里的指针方法
        CursorManager.GetInstance.SetNpcTalk();
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容