Comment faire pour appliquer une force sur un objet dans une direction particulière dans l'Unité
Je suis à l'aide de l'unité, afin de développer mon jeu. J'ai fait une coutume geste de balayage par le calcul de la startPosition et la Position de fin de la ligne de touche. J'ai eu le vecteur direction en soustrayant les deux positions et de débogage avec succès.
Mais quand il s'agit de l'application de la force à mon jeu de l'objet, je ne suis pas tout le succès après avoir essayé beaucoup.
voici ce que j'ai fais:
swipeDirection = new Vector3(endPos.x - startPos.x,0f, endPos.z - startPos.z);
swipeDirection.Normalize();
Debug.Log("The direction is "+ swipeDirection);
ball.rigidbody.AddForce(swipeDirection * 5);
où la balle est juste un GameObject. Chaque fois que je le lance sur mon iPhone, le jeu devient juste coincé donner un EXC_BAD_ACCESS code après la première utilisation.
EXC_BAD_ACCESS
est généralement un uncaught exception NullReferenceException. Sontball
ouball.rigidbody
null? Par exemple, si vous n'avez pas regardé une "boule", ou si le ballon n'a pas attaché Rigidbody composant.- Probablement, vous obtiendrez un message d'erreur lors de l'exécution sur l'éditeur.
- Dois-je toujours appliquer une force dans une méthode de mise à jour?
Vous devez vous connecter pour publier un commentaire.
Donc je viens de tester votre code. Et il fonctionne. Ce problème que vous pourriez avoir, c'est que ces nombre sont assez petits plus probable, et vous avez besoin de BEAUCOUP de force pour déplacer sensiblement. Essayez de changer votre 5 à 1000 ou quelque chose de grand, de sorte que vous pouvez certainement voir le changement. Voici mon code, juste ajouté une boule avec rigidbody.
presque identiques. vous avez juste besoin de faire le multiplicateur assez grand pour voir.
bonne chance.