Unity 设置游戏内鼠标形状和触碰NPC改变形状

自己使用的Unity2018和VS2019版。

先设置游戏内鼠标形状

第一步

在这里插入图片描述

第二步

在这里插入图片描述

第三步 拖入素材

在这里插入图片描述

触碰其他物体改变形状

创建一个空物体
在这里插入图片描述
创建一个

public class CursorManager : MonoBehaviour {
    
    

	public static CursorManager _instance;//单例模式

	public Texture2D cursor_normal;
	public Texture2D cursor_npc_talk;
	//若需要更多的形状,则多创建几个 Texture2D类型的
	//拖入素材

	private Vector2 hotSpot = Vector2.zero;
	private CursorMode mode = CursorMode.Auto;//设置光标使用软件呈现还是在支持的平台上使用硬件呈现

	
	// Use this for initialization
	void Start () {
    
    
		_instance = this;
	}
	public void SetNormal()//设置普通的鼠标形状
	{
    
    
		Cursor.SetCursor(cursor_normal, hotSpot, mode);
	}

	public void SetNpcTalk()//设置触碰到物体的鼠标形状
	{
    
    
		Cursor.SetCursor(cursor_npc_talk, hotSpot, mode);
	}
	
	//这里可以多创建几个触碰到物体的方法
	//格式为
	//public void SetNpcTalk()方法名可以随便设置
	//{
    
    
	//	Cursor.SetCursor(这里为触碰到物体后的形状, hotSpot, mode);
	//}

	// Update is called once per frame
	void Update () {
    
    
		
	}
}

将素材托进去
在这里插入图片描述

创建物体,附上NPC类
代码如下

public class NPC : MonoBehaviour {
    
    

	void OnMouseEnter()//鼠标触碰
    {
    
    
		CursorManager._instance.SetNpcTalk();//调用单例模式中的方法
    }
	
	void OnMouseExit()//鼠标离开
	{
    
    
		CursorManager._instance.SetNormal();//调用单例模式中的方法
    }

	// Use this for initialization
	void Start () {
    
    
		
	}
	
	// Update is called once per frame
	void Update () {
    
    
	}
}

若需要更多形状,可以在创建物体和类,方法代码,基本相同,需要改的就是方法名和触碰到物体后的形状名。

这样就可以实现两种需求了。
感谢大佬们捧场

扫描二维码关注公众号,回复: 13055599 查看本文章

猜你喜欢

转载自blog.csdn.net/m0_47605113/article/details/111574736