using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CursorManager : MonoBehaviour
{
public static CursorManager instance;
//将效果鼠标图片移动至Unity属性面板
public Texture2D cusor_normal;
public Texture2D cusor_npc_talk;
public Texture2D cusor_attack;
public Texture2D cusor_lockTarget;
public Texture2D cusor_pick;
//表示使用鼠标左上角
private Vector2 hotspot = Vector2.zero;
//表示设备自动选择在硬件还是软件上使用此功能
private CursorMode mode = CursorMode.Auto;
void Start()
{
instance = this;
}
/*Cursor.SetCursor 方法用于设置鼠标指针的外观。该方法接受三个参数,分别是:
cursor:表示要设置的鼠标指针的纹理。这通常是一个用于表示鼠标指针外观的图片或纹理。
hotspot:表示鼠标指针的热点位置。热点是指鼠标指针图像中用于定位鼠标点击位置的点。它是相对于
鼠标指针图像的左上角的偏移量。通常,热点位于图像的中心,以便准确地表示鼠标点击位置。
mode:表示鼠标指针的显示模式。它是一个枚举值,可以是以下几种之一:
CursorMode.Auto:鼠标指针的外观将根据操作系统和硬件自动调整。
CursorMode.ForceSoftware:鼠标指针的外观将强制使用软件渲染。
CursorMode.ForceHardware:鼠标指针的外观将强制使用硬件渲染。
通过调用Cursor.SetCursor方法并传递适当的参数,您可以更改鼠标指针的外观、热点位置和显示模式。*/
public void SetNormal()
{
Cursor.SetCursor(cusor_normal, hotspot, mode);
}
public void SetNpcTalk()
{
Cursor.SetCursor(cusor_npc_talk,hotspot, mode);
}
public void SetAttack()
{
Cursor.SetCursor(cusor_attack, hotspot, mode);
}
public void SetLockTarget()
{
Cursor.SetCursor(cusor_lockTarget, hotspot, mode);
}
}
通过此方法管理鼠标指针的变化(任意挂到一个空物体)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Wolf : MonoBehaviour
{
//移到游戏物体时鼠标变色
private void OnMouseEnter()
{
//可加判断条件
CursorManager.instance.SetAttack();
}
//鼠标移出
private void OnMouseExit()
{
CursorManager.instance.SetNormal();
}
}
例如通过在游戏物体上挂载此方法调用
默认全局鼠标图片在File->BuildSettings->PlayerSettings->Player->Default Cursor设置使用
default Icon是打包之后exe可执行文件的图标