2017-09-15 3 views
0

J'essaie de créer une roue de rotation qui suit la direction du balayage. Actuellement, cela fonctionne très bien avec les contrôles de la souris, mais je n'ai pas réussi à faire fonctionner ce script avec les commandes tactiles. Une idée de comment faire ça?Changer les contrôles de la souris au toucher dans Unity C#

Script:

void Update() 
{ 
    if (Input.GetMouseButtonDown(0)) 
    { 
     f_difX = 0.0f; 
    } 
    else if (Input.GetMouseButton(0)) 
    { 
     f_difX = Mathf.Abs(f_lastX - Input.GetAxis ("Mouse X")); 

     if (f_lastX < Input.GetAxis ("Mouse X")) 
     { 
      i_direction = -1; 
      transform.Rotate(Vector3.up, -f_difX); 
     } 

     if (f_lastX > Input.GetAxis ("Mouse X")) 
     { 
      i_direction = 1; 
      transform.Rotate(Vector3.up, f_difX); 
     } 

     f_lastX = -Input.GetAxis ("Mouse X"); 
    } 
    else 
    { 
     if (f_difX > 0.5f) f_difX -= 0.05f; 
     if (f_difX < 0.5f) f_difX += 0.05f; 

     transform.Rotate(Vector3.up, f_difX * i_direction); 
    } 
} 

Merci.

Répondre

1

Jetez un oeil à ce fil: http://answers.unity3d.com/questions/504707/replace-input-get-axis-horizontal-with-touch-input.html, première réponse.

Le lien fournit un extrait de code montrant comment utiliser le delta de position calculé pour remplacer Input.GetAxis.

+2

Il est utile de donner un bref aperçu de la réponse contenue dans votre lien - d'autant plus qu'il ne s'agit pas d'une réponse stackoverflow et que cela pourrait changer/devenir inaccessible à un moment donné. – Bilkokuya

+1

Cela a fonctionné. Merci pour votre réponse. –