Kei*_*wer 1 c# unity-game-engine
我尝试检查 a 的触摸事件Sprite,但只能让此代码在 UI 元素上运行。我看过鼠标事件的示例,但我想捕获鼠标和触摸,因为这个游戏将是多平台的
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public class PlayButton : MonoBehaviour, IPointerDownHandler
{
public void OnPointerDown(PointerEventData eventData)
{
Debug.Log("play");
}
}
Run Code Online (Sandbox Code Playgroud)
IPointerDownHandler要与非 UI 元素一起使用,需要将碰撞器添加到 Sprite 和PhysicsRaycasterCamera。
或者添加一个碰撞器并在移动设备上使用OnMouseDown并OnMouseUp正常工作,只要您只对单次触摸感兴趣 - 您可能就是这样。由于“性能问题”,Unity 不建议使用它 - 但我不认为这些性能问题非常重要,至少对于大多数项目而言。如果您有很多带有这些回调的对象,那么您可能会在低端设备上遇到问题,但我从未在可追溯到 iPhone 3GS 的项目中遇到过这种情况。
另一种方法是使用Input.touches数组来检查触摸是否在精灵内。这需要更多的工作 - 所以我建议从 OnMouseDown 开始,看看进展如何。