Unityはゲーム内でマウスの形状を設定し、NPCに触れて形状を変更します

Unity2018バージョンとVS2019バージョンを使用しています。

最初にゲームでマウスの形を設定します

最初の一歩

ここに画像の説明を挿入

第二段階

ここに画像の説明を挿入

3番目のステップは、マテリアルをドラッグすることです

ここに画像の説明を挿入

他のオブジェクトに触れて形を変える

空のオブジェクトを
ここに画像の説明を挿入
作成します

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

より多くの形状が必要な場合は、オブジェクトとクラスを作成できます。メソッドコードは基本的に同じです。変更する必要があるのは、オブジェクトに触れた後のメソッド名と形状名です。

このようにして、2つの要件を達成できます。
ご参加いただきありがとうございます

おすすめ

転載: blog.csdn.net/m0_47605113/article/details/111574736