2015-08-26 3 views
0

J'ai un joueur qui va "tomber" sur une planète, une sphère, et se tenir debout verticalement. la planète gère sa propre gravité là où elle fait tourner le joueur pour être debout, mais verrouille l'axe des y.unty3d faire pivoter le joueur pour qu'il se place sur la planète

le script gravity.js détecte si un objet est un joueur, frapper, et exécute ce sur le joueur, rotation de verrouillage du joueur:

hit.transform.LookAt(/*hit.transform.position + */transform.position); 
hit.transform.eulerAngles = Vector3(hit.transform.eulerAngles.x - 90, hit.transform.eulerAngles.y, hit.transform.eulerAngles.z); 

comment libérer tout l'axe y? pas plus cependant.

Répondre

0

Vous ne savez pas exactement ce que vous essayez de faire. Mais si les gravity.js est attaché au joueur, vous pouvez effectuer les opérations suivantes:

hit.transform.LookAt(/*hit.transform.position + */transform.position); 
hit.transform.eulerAngles = Vector3(hit.transform.eulerAngles.x - 90, this.transform.eulerAngles.y, hit.transform.eulerAngles.z); 

L'axe y eulerAngles est juste placé à ce qu'il est actuellement. Je ne sais pas Unitys JavaScript, donc cela vient de mes connaissances en C#. Vous devrez peut-être l'adapter. Vous pourriez vouloir lire ceci: https://www.reddit.com/r/Unity3D/wiki/faq :) aucune infraction!

Une autre façon de faire ce que vous voulez accomplir est de cocher les cases de contrainte sur le modèle du solide indéformable si votre joueur a un:

Unity3D Rigidbody

+0

bien que je ne veux pas bloquer les joueurs x et rotations z , mais localement les verrouiller en conséquence là où le joueur est sur la planète. par exemple, si le joueur est au fond de la planète, il doit être à l'envers, mais n'empêche pas le joueur de tourner sur l'axe y LOCAL. C'est essentiel pour le jeu même de travailler en premier lieu. disons que le joueur est sur le côté de la planète, le joueur se tiendra sur la planète mais le code que j'ai donné bloque le joueur de tourner sur l'axe y local. –

+0

Hmm, je ne pense pas que ce soit le chemin à parcourir. Si votre joueur se tient debout sur la planète (avancez le sol, dirigez-vous vers les nuages, peu importe si vous êtes en haut ou en bas de la planète), la direction du regard gauche et droite sera toujours son axe y local. Alors pourquoi verrouiller quelque chose? Avez-vous essayé de rechercher réponses/forums/google pour "Planet Walker" ou "Spherical Gravity"? J'ai trouvé beaucoup de choses utiles. – Wipster

+0

recherché, mais utilisé des mots-clés différents. Je vais essayer ceux-ci car ils semblent beaucoup plus prometteurs que ceux que j'ai utilisés auparavant. Je vous remercie! @Wipster –