【发布时间】:2019-10-17 09:39:18
【问题描述】:
我添加 UI 对象 Button 并添加具有公共功能的 C# 脚本。 要按钮,我添加组件事件触发器,执行事件(指针单击和指针向下)并重定向到我的函数 public void onClick()
在 PC 上代码有效,但是当我将游戏上传到 android 并触摸对象时,代码无效。
onTouch事件怎么做?
【问题讨论】:
标签: android unity3d events onclick ontouch
我添加 UI 对象 Button 并添加具有公共功能的 C# 脚本。 要按钮,我添加组件事件触发器,执行事件(指针单击和指针向下)并重定向到我的函数 public void onClick()
在 PC 上代码有效,但是当我将游戏上传到 android 并触摸对象时,代码无效。
onTouch事件怎么做?
【问题讨论】:
标签: android unity3d events onclick ontouch
为了处理触摸输入,您需要检查Input.touchCount,然后使用Input.GetTouch 查询每个触摸。请注意,每个Touch 都有一个an ID,每个手指都是唯一的,并且跨帧保持一致。
没有简单的OnClick 之类的触摸方法,因为触摸可能要复杂得多(点击、长按、拖动等),因此您必须检查Update() 内部并处理来自触摸的转换数据到鼠标模拟自己。
【讨论】:
Physics.Raycast 用于游戏对象。画布 UI 元素已设置为处理触摸。
我认为 OnMouseDown 会检查每一帧是否有鼠标输入,它就像更新一样,因此您必须在更新中进行脸颊触摸,并且通过触摸您将拥有更多控制,如触摸阶段,以检测触摸是否开始、抬起或移动等。 .. 你需要检查
if(input.touchCount > 0)
void Update() {
if (Input.touchCount > 0){
print("exist a touch");
if(Input.GetTouch(0).phase == TouchPhase.Began){
print("Touch begans");
}
if(Input.GetTouch(0).phase == TouchPhase.Ended){
print("Touch Ended");
}
}
}
chCount > 0)& inside this you can cheek for touch Phase
【讨论】: