![](/img/trans.png)
[英]rigidbody.moveposition is not working while using touchphase In unity3d
[英]Cannot get TouchPhase to work in Unity3D
這是我的代碼
using UnityEngine;
using System.Collections;
public class cube : MonoBehaviour {
bool start;
// Use this for initialization
void Start () {
start = false;
}
// Update is called once per frame
void Update () {
if (Input.GetTouch(0).phase == TouchPhase.Began) {
start = true;
}
if (Input.GetTouch(0).phase == TouchPhase.Ended) {
start = false;
}
if (start) {
transform.RotateAround (Vector3.zero, Vector3.left, 1);
}
else
transform.RotateAround (Vector3.zero, Vector3.right, 1);
}
}
觸摸屏幕時,起始變量應設置為true,並且多維數據集應開始順時針旋轉,放開屏幕時,它應開始逆時針旋轉,但僅在觸摸屏幕時才順時針旋轉,而當我觸摸屏幕時停止旋轉松手。
另外,當我通過觸摸屏幕將變量設置為true時,由於start變量現在為true,因此多維數據集應該繼續旋轉,但是一旦我停止觸摸屏幕,多維數據集就會停止。 它適用於鍵盤按鈕,但不適用於觸摸屏。
if (Input.GetTouch(0).phase == TouchPhase.Began) {
start = true;
if (start) {
transform.RotateAround (Vector3.zero, Vector3.left, 1);
}
我已經花了幾個小時來解決這個問題,但是仍然無法解決問題。
您的代碼在這里:
if (Input.GetTouch(0).phase == TouchPhase.Began) {
start = true;
}
if (Input.GetTouch(0).phase == TouchPhase.Ended) {
start = false;
}
如果屏幕上沒有觸摸會發生什么? 是的,您會收到錯誤消息,因為游戲正在嘗試訪問不存在的內容。 如果您在Unity上進行模擬,它將被打印在控制台上,但是當您使用自己的設備時,不會收到有關發生的錯誤的通知。
將touchCount
添加到您的代碼中:
if (Input.touchCount > 0) {
if (Input.GetTouch (0).phase == TouchPhase.Began) {
start = true;
}
if (Input.GetTouch (0).phase == TouchPhase.Ended) {
start = false;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.