统一游戏中的多点触控不起作用
multi-touch in the unity game not working
除了多点触控部分,教程和其他一切都很好。我有两个按钮,它们实际上是 canvas 上的两个不同图像,但是当我使用一个按钮时,我不能使用另一个触摸按钮。我的每一个按钮都有这个脚本。
代码如下:
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections;
public class SimpleTouchShoot : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{
private bool touched;
private int pointerID;
private bool canFire;
void Awake()
{
touched = false;
canFire = false;
}
public void OnPointerDown (PointerEventData data)
{
if(!touched)
{
touched = true;
pointerID = data.pointerId;
canFire = true;
}
}
public void OnPointerUp (PointerEventData data)
{
if(data.pointerId == pointerID)
{
touched = false;
canFire = false;
}
}
public bool CanFire ()
{
return canFire;
}
}
Unity的版本是4.6。
您正在使用事件处理程序的接口。它没有实现自己的多点触摸功能,因此您必须制作自己的触摸逻辑。在大多数情况下,这是一种 hacky 的方式。制作一个数组或触摸输入列表并为其设置案例。
点击 link 并检查第 5 个答案。答案是一种老掉牙的方式。因为事件接口将 EventHandler 添加到脚本的任何游戏对象中。但是你总是需要告诉游戏引擎你接受不止一个输入 <- 以使其简单。捕获被忽略的第二个触摸输入。
除了多点触控部分,教程和其他一切都很好。我有两个按钮,它们实际上是 canvas 上的两个不同图像,但是当我使用一个按钮时,我不能使用另一个触摸按钮。我的每一个按钮都有这个脚本。
代码如下:
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections;
public class SimpleTouchShoot : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{
private bool touched;
private int pointerID;
private bool canFire;
void Awake()
{
touched = false;
canFire = false;
}
public void OnPointerDown (PointerEventData data)
{
if(!touched)
{
touched = true;
pointerID = data.pointerId;
canFire = true;
}
}
public void OnPointerUp (PointerEventData data)
{
if(data.pointerId == pointerID)
{
touched = false;
canFire = false;
}
}
public bool CanFire ()
{
return canFire;
}
}
Unity的版本是4.6。
您正在使用事件处理程序的接口。它没有实现自己的多点触摸功能,因此您必须制作自己的触摸逻辑。在大多数情况下,这是一种 hacky 的方式。制作一个数组或触摸输入列表并为其设置案例。
点击 link 并检查第 5 个答案。答案是一种老掉牙的方式。因为事件接口将 EventHandler 添加到脚本的任何游戏对象中。但是你总是需要告诉游戏引擎你接受不止一个输入 <- 以使其简单。捕获被忽略的第二个触摸输入。