检测鼠标持续按下要继承2个接口IPointerDownHandler, IPointerUpHandler,并且这个类要挂在相应的UI上
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class Operation : MonoBehaviour,IPointerDownHandler, IPointerUpHandler
{
public bool pressed = false;
public void OnPointerDown(PointerEventData eventData)
{
pressed = true;
}
public void OnPointerUp(PointerEventData eventData)
{
pressed = false;
}
}
在每个相应的UI上判定鼠标是否持续按下,把它当做组件加到每个UI上,在判断
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class OperationPlaneButton : MonoBehaviour
{
private Button[] bts;
private GameObject cfj;
private bool isDown = false;
private void Awake()
{
bts = this.GetComponentsInChildren<Button>();
Getbtns();
}
// Use this for initialization
void Start ()
{
cfj = GameObject.Find("cfj");
}
void Getbtns()
{
foreach (var item in bts)
{
item.gameObject.AddComponent<Operation>();
}
}
private void RorateX()
{
cfj.transform.Rotate(-5, 0, 0);
}
// Update is called once per frame
void Update ()
{
foreach (var item in bts)
{
isDown = item.gameObject.GetComponent<Operation>().pressed;
if (isDown==true)
{
if (item.gameObject.name== "Button")
{
RorateX();
print(2);
}
}
}
}
}