在Unity上实现OnBeginDrag,OnDrag等回调 [英] Implement OnBeginDrag, OnDrag, etc. callback on Unity
本文介绍了在Unity上实现OnBeginDrag,OnDrag等回调的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用简单的多维数据集对象在场景上实现摄像机控制器.
I'm trying to implement a camera controller on a scene with a simple cube object.
我在捕获android上的触摸事件时遇到问题.
I'm having problem on catching the touch events on android.
最简单的方法是什么?
我已经尝试过 https://docs.unity3d.com/ScriptReference/EventSystems.EventTrigger.html
这是我到目前为止所做的:
This is what I did so far:
- 在主相机上添加了光线投射器
- 在多维数据集上添加了一个事件触发器
-
将脚本应用于多维数据集
- added a raycaster on the main camera
- added an event trigger on the cube
applied the script on the cube
EventTrigger trigger = GetComponent<EventTrigger>();
EventTrigger.Entry entry = new EventTrigger.Entry();
entry.eventID = EventTriggerType.Drag;
entry.callback.AddListener((data) => {
OnDragDelegate((PointerEventData)data);
});
trigger.triggers.Add(entry);
...
public void OnDragDelegate(PointerEventData data)
推荐答案
我认为最简单的方法是使用DragHandler接口:
I think the simplest way is to use DragHandler interfaces :
using UnityEngine.EventSystems;
public class Drag: MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public void OnBeginDrag(PointerEventData eventData)
{
print("OnBeginDrag");
}
public void OnDrag(PointerEventData eventData)
{
print("OnDrag");
}
public void OnEndDrag(PointerEventData eventData)
{
print("OnEndDrag");
}
}
通过这种方式,它不仅可以在Android中运行,而且还可以在Unity编辑器中对其进行测试.
In this way not only it works in Android, but also you can test it in Unity Editor.
这篇关于在Unity上实现OnBeginDrag,OnDrag等回调的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文