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();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值