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

简介: 类一:单例cursor类,脚本位于空物体usingUnityEngine;/// /// 鼠标指针管理类【单利模式】(游戏中,不同状态对于不同指针)/// public class CursorManager : MonoBehaviour...
类一:单例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();
    }
}

相关文章
|
8月前
|
图形学
unity判断鼠标在不在UI上
unity判断鼠标在不在UI上
物体交互操作之鼠标拖动物体任意移动(Unity3D)
物体交互操作非常的多,比如说用鼠标拖动物体移动,用鼠标拖动物体旋转,用鼠标滑动让物体放大和缩小。 下面就用代码演示一下如何使用鼠标拖动物体移动。
鼠标控制物体旋转、移动、缩放(Unity3D)
Unity3D对于鼠标操作物体的旋转、移动、缩放的功能点使用的比较多。 今天就分享如何使用Unity实现鼠标对于物体的旋转、移动、缩放。
UGUI系列-鼠标移动到按钮上显示信息(Unity3D)
有时候图标不能很好的说明这个功能的解释,就需要一些说明性文字显示。就比如可以在鼠标移动到UI上面的时候显示文字。 那么如何在UGUI上,鼠标移动上去显示文字说明呢。 大家都知道,当鼠标移动到button按钮上面的时候会出现变化,主要是button这个组件在控制
|
vr&ar 图形学
【Unity3D 灵巧小知识点】☀️ | Unity通过 射线 获取 鼠标的世界坐标 和 鼠标点击的物体信息
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。
【Unity3D 灵巧小知识点】☀️ | Unity通过 射线 获取 鼠标的世界坐标 和 鼠标点击的物体信息
|
5月前
|
C# 图形学
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
56 0
|
5月前
|
人工智能 自然语言处理 区块链
【Unity 3D】元宇宙概念、应用前景、价值链等概述
【Unity 3D】元宇宙概念、应用前景、价值链等概述
54 0
|
5月前
|
vr&ar C# 图形学
【Unity 3D】VR飞机拆装后零件说明功能案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机拆装后零件说明功能案例实战(附源码和演示视频 超详细)
41 0