2015-05-13 1 views
4

Я пытаюсь получить объект для чтения щелчка (с помощью пакета Touchscript на Unity) - затем щелкнуть объект, к которому прикреплен скрипт в направлении.

Он определенно читает щелчок, но я понятия не имею, как читать/получать направление, чтобы добавить силу на жесткое тело/перевести его в направлении. Я посмотрел на такие ссылки, как ScreenFlickVector & GestureDirection без везения. Мне бы очень понравилась ваша помощь!Unity C# TouchScript - Перемещение объекта в направлении Flick

private Rigidbody rb; 
    // Use this for initialization 
    void Start() { 
     rb= GetComponent<Rigidbody>(); 
    } 

    // Update is called once per frame 
    void FixedUpdate() 
    { 
     transform.Translate(Vector3.down * Time.deltaTime); 

    } 

    private void OnEnable() 
    { 
     // subscribe to gesture's Tapped event 
     GetComponent<FlickGesture>().Flicked += OnFlick; 

    } 
    private void OnDisable() 
    { 
     GetComponent<FlickGesture>().Flicked -= OnFlick; 
    } 

    private void OnFlick(object sender, EventArgs e) 
    { 
     // Implement the Flick 

    } 
} 

ответ

2

Доступ к информации FlickGesture можно сделать так:

void OnFlick(object sender, System.EventArgs e) 
{ 
    var gesture = sender as FlickGesture; 

    float distanceFromCamera = Vector3.Distance(transform.position, Camera.main.transform.position); 

    Vector3 wp1 = new Vector3(gesture.PreviousScreenPosition.x, gesture.PreviousScreenPosition.y, distanceFromCamera); 
    wp1 = Camera.main.ScreenToWorldPoint(wp1); 

    Vector3 wp2 = new Vector3(gesture.ScreenPosition.x, gesture.ScreenPosition.y, distanceFromCamera); 
    wp2 = Camera.main.ScreenToWorldPoint(wp2); 

    Vector3 velocity = (wp2 - wp1)/gesture.FlickTime; 

    rigidbody.AddForce(velocity, ForceMode.VelocityChange); 
} 

Принимая начальные и конечные позиции жеста и преобразование этих позиций в мировом пространство, то, применяя масштабирование с истекшим жестом время приводит к мировой космической скорости движущегося объекта.

Надеюсь, вам это поможет.