Ok так вот мой вопрос,«Venkat на Axiom Studios Пожалуйста, помогите» дозировать кто знает, как я хотел бы использовать жесты в Unity3D для Android, чтобы отслеживать движение V A 2 Finger
Я пытаюсь выяснить, как я бы быть в состоянии зарегистрировать, что пользователь использовал два пальца, чтобы сделать V на экране (начальная точка пальца будет там, где пользователь прикасается туда двумя пальцами, а затем, распространяя там два пальца, двигаясь вверх, чтобы сделать V-образную форму), используя Unity 3d для android.
Я никогда не делал жесты, связанные формы, прежде чем так что любые советы, ссылки или примеры того, как я мог бы сделать это было бы весьма признателен
Заранее спасибо Graeme
Отредактировано: так я пытался чтобы понять это, ожидая, когда кто-то поможет мне.
это то, что у меня есть до сих пор, это не работает так, как я хочу, но я не уверен, что я делаю неправильно, поскольку я никогда не пытался делать что-либо подобное с помощью жестов раньше. любая помощь вообще было бы весьма признателен
Еще раз спасибо Graeme
using UnityEngine;
использованием System.Collections;
общественного класса Pinchv: MonoBehaviour {
public Vector2 leftFingerStartPosition;
public Vector2 leftFingerEndPosition;
public Vector2 rightFingerStartPosition;
public Vector2 rightFingerEndPosition;
void Update() {
foreach(Touch touch in Input.touches)
{
if(touch.phase == TouchPhase.Began){
Touch leftFinger = Input.GetTouch (0);
Touch rightFinger = Input.GetTouch (1);
leftFingerStartPosition = Input.GetTouch (0).position;
leftFingerEndPosition = Input.GetTouch(0).position;
rightFingerStartPosition = Input.GetTouch(1).position;
rightFingerEndPosition = Input.GetTouch(1).position;
if(Input.touchCount == 2 && Mathf.Abs(leftFingerEndPosition.x + Screen.width - leftFingerStartPosition.x) > 20 &&
Mathf.Abs(leftFingerEndPosition.y + Screen.height - leftFingerStartPosition.y) > 60){
if(Input.touchCount == 2 && Mathf.Abs(rightFingerEndPosition.x + Screen.width - rightFingerStartPosition.x) > 20 &&
Mathf.Abs(rightFingerEndPosition.y + Screen.height - rightFingerStartPosition.y) > 60){
Debug.Log ("its a v ");
}
}
if(touch.phase == TouchPhase.Ended){
leftFingerStartPosition = Vector2.zero;
leftFingerEndPosition = Vector2.zero;
rightFingerStartPosition = Vector2.zero;
rightFingerEndPosition = Vector2.zero;
}
}
}
}
}
EDIT:
так я взял ваш совет и пытался что-то другое, но, к сожалению, не работает.
Я скоро начну вытягивать свои волосы, если не могу понять, что это LOL. вот новый код, который я пытался создать, который не работает. Кто-нибудь, пожалуйста, помогите мне решить, что это заставило меня сходить с ума сейчас на 3 дня.
@Venkat в Axiom Studios могли бы вы помочь мне снова было бы весьма признателен :)
Терпеливо ждет Graeme
using UnityEngine;
использованием System.Collections;
общественного класса Pinchv: MonoBehaviour {
public Vector2 fingerOneStartPosition;
public Vector2 fingerOneEndPosition;
public Vector2 fingerTwoStartPosition;
public Vector2 fingerTwoEndPosition;
void Update() {
foreach(Touch touch in Input.touches)
{
if(touch.phase == TouchPhase.Began){
// Touch leftFinger = Input.GetTouch (0);
// Touch rightFinger = Input.GetTouch (1);
fingerOneStartPosition = Input.GetTouch (0).position;
fingerOneEndPosition = Input.GetTouch(0).position;
fingerTwoStartPosition = Input.GetTouch(1).position;
fingerTwoEndPosition = Input.GetTouch(1).position;
if(Input.touchCount == 2 && Mathf.Abs(fingerOneStartPosition.x - fingerOneEndPosition.x) > 700 &&
Mathf.Abs(fingerOneStartPosition.y - fingerOneEndPosition.y) > 120){
if(Input.touchCount == 2 && Mathf.Abs(fingerTwoStartPosition.x - fingerTwoEndPosition.x) > 700 &&
Mathf.Abs(fingerTwoStartPosition.y - fingerTwoEndPosition.y) > 120){
Debug.Log ("its a v ");
}
}
}
if(touch.phase == TouchPhase.Ended){
fingerOneStartPosition = fingerOneEndPosition;
fingerOneEndPosition = Vector2.zero;
fingerTwoStartPosition = fingerTwoEndPosition;
fingerTwoEndPosition = Vector2.zero;
}
}
}
public void OnGUI(){
GUILayout.Label("Where am i fingerone X : " + fingerOneStartPosition + "end position" + fingerOneEndPosition);
GUILayout.Label("Where am i fingerone X : " + fingerTwoStartPosition + "end position" + fingerTwoEndPosition);
}
}
хорошо, с одной стороны, я не думаю, влево/вправо, пальцы всегда слева = 0, справа = 1 в списке сенсорных входов. Может быть, попробовать что-то подобное, в то время как проверка обеих возможностей поможет? –
спасибо, я этого не заметил :), что определенно поможет –