g_l*_*g_l 3 c# touch unity-game-engine
目前,我正在努力寻找如何创建一些简单的代码来告诉我是否发生敲击的方法,从而使我能够确定敲击的位置。浏览了许多不同的文章后,我感到很困惑,Touch.tapCount因为通常建议仅适用于ios。此外,我尝试使用Touch.deltaTime和/或Touch.deltaPosition检测到水龙头,但失败了。
我将水龙头定义为具有
从手指开始触摸到最终退出手机之间的很短时间
很少或没有运动
感谢您阅读本文档,我希望其内容清晰准确,是否代表我需要任何详细信息或帮助,以便您随时回答。非常感谢您的协助。谢谢。
注意-我在C#中工作
小智 5
首先,您必须确定您的Android设备是否确实可以注册几次触摸。如果您有更新的设备,这应该不是问题。我将假设您的设备可以,如果不能,那么您将很快找到足够的设备。
让我们从update方法开始。
void Update() {
// Nothing at the moment
}
Run Code Online (Sandbox Code Playgroud)
我们首先要做的是注册触摸。我们可以通过在内部放一个foreach并检查Input.touches中的触摸来做到这一点。像这样:
void Update() {
foreach (Touch touch in Input.touches) {
}
}
Run Code Online (Sandbox Code Playgroud)
通过这样做,我们一直在检查屏幕上当前有多少触摸。现在,我们可以通过fingerId进行检查,如果fingerId == 0、1、2 ...,则运行一些代码。这是我们现在得到的:
void Update() {
foreach (Touch touch in Input.touches) {
if (touch.fingerId == 0) {
// Finger 1 is touching! (remember, we count from 0)
}
if (touch.fingerId == 1) {
// finger 2 is touching! Huzzah!
}
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我们很棒!现在我们要做的是检测我们想要的运动。就我们而言,我们想要水龙头,对不对?这应该与TouchPhase Began and Ended完美配合。还有TouchPhase.Moved,但我们现在不需要。
if (touch.fingerId == 0) {
if (Input.GetTouch(0).phase == TouchPhase.Began) {
Debug.Log("First finger entered!");
}
if (Input.GetTouch(0).phase == TouchPhase.Ended) {
Debug.Log("First finger left.");
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,我们正在检查相应手指的相位。如果您现在运行该程序,那么只要您初次进入或离开屏幕,就应该能够在控制台中看到消息。只需触摸几下即可完成操作,因此这是“整个”脚本:
void Update() {
foreach (Touch touch in Input.touches) {
if (touch.fingerId == 0) {
if (Input.GetTouch(0).phase == TouchPhase.Began) {
Debug.Log("First finger entered!");
}
if (Input.GetTouch(0).phase == TouchPhase.Ended) {
Debug.Log("First finger left.");
}
}
if (touch.fingerId == 1) {
if (Input.GetTouch(1).phase == TouchPhase.Began) {
Debug.Log("Second finger entered!");
}
if (Input.GetTouch(1).phase == TouchPhase.Ended) {
Debug.Log("Second finger left.");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
希望对您有帮助。我本人还很陌生,因此,如果我们很幸运,那么有经验的人可以来帮助您。我相信这可以写得更干净。请记住,如果您进行构建,则看不到控制台消息。如果还没有,请查看Unity Remote。祝好运!:)
| 归档时间: |
|
| 查看次数: |
6449 次 |
| 最近记录: |