Input

Q:我在场景中实例化一物体,并且该物体会对鼠标指针的进入和进出做出响应(例如,指针指向物体时改变颜色,移出时恢复颜色)。同时,我还需要对鼠标的按键状态进行响应,左键和右键产生不同的操作。这种需求,除了在Object脚本的Update里做判断外,还有没有更效率的实现方式?

A:可以借助IpointerClickHandler接口:
https://docs.unity3d.com/ScriptReference/EventSystems.IPointerClickHandler.html

using UnityEngine;
 using UnityEngine.EventSystems;
 using UnityEngine.Events;

 public class RightClick : MonoBehaviour, IPointerClickHandler
 {

     public UnityEvent leftClick;
     public UnityEvent middleClick;
     public UnityEvent rightClick;

     public void OnPointerClick(PointerEventData eventData)
     {
         if (eventData.button == PointerEventData.InputButton.Left)
             leftClick.Invoke ();
         else if (eventData.button == PointerEventData.InputButton.Middle)
             middleClick.Invoke ();
         else if (eventData.button == PointerEventData.InputButton.Right)
             rightClick.Invoke ();
     }
 }

将以上脚本挂在Object之上即可。

你可能感兴趣的:(Input)