Menu
EtoileAbonnementRSS
jeuxvideo.com  /  Tous les forums  /  Forum principal Informatique  /  Forum Création de Jeux  /  Topic J'aide les gens dans Unity  / 

Topic J'aide les gens dans Unity - Page 6

Sujet : J'aide les gens dans Unity

DébutPage précedente
Page suivanteFin
unity_user
unity_user
MP
19 février 2014 à 14:47:17

MediateurOfGame :d) Non apparemment tu n'as pas compris

"rigidbody.Sleep() désactive juste le traitement du moteur physique pour une trame d'image"

:d) Non , pour un MINIMUM d'une frame

"Il sert essentiellement à éviter un mauvais comportement du moteur physique quand on modifie les paramètres physiques d'un objet dans le cadre d'un Update(). "

:d) Non plus , il s'agit là d'une question de gestion d'objets et surtout de performances . Un objet qui n'as pas besoin de subir de physique ne doit pas être en rigidbody "activé" . A titre d'exemple , je veux faire du fracturing sur une vitre, pour ça j'importe une vitre fracturée et modéliser sur n'importe quel tools de modélisation 3D , je mets un rigidbody sur chaque fracture puis je leur ajouter le rigidbody.sleep()dans Awake() , quand une imaginons une balle traverse la vitre je le mets en WakeUp et voilà simulation de vitre brisée , l'erreur ici serait de ne pas endormir les rigidbody , car chute de performance .

"Pour modifier la gravité en cours de route ou la désactiver (bien que je ne comprenne toujours pas le but). rigidbody.useGravity = false;"

:d) Non plus, car là tu ne fais que désactiver la gravité : au moindre coup de vent , contacte ou autre ton objet va s'envoler .

unity_user
unity_user
MP
19 février 2014 à 14:49:08

contact * pardon

unity_user
unity_user
MP
19 février 2014 à 14:55:51

Ah et un autre exemple pour être plus clair :

Ta voiture quand tu rentres chez toi tu mets ton embrayage au point mort , et ton frein à main et pourtant tu éteins ton moteur alors que cela suffit à empêcher qu'elle bouge parce que c'est inutile de consommer alors que tu ne l'utilises pas , tu la démarreras quand t'aura besoin de rouler , ici c'est là même chose .

Pseudo supprimé
19 février 2014 à 15:10:37

Pour le Sleerp, effectivement je m'étais mal exprimé. Mais très utile quand même pour manipuler un rigidbody à l’intérieur d'un update.

Maintenant à la réponse de SergeantCastlez, à la vue de son affaire.
Puisqu'il souhaite utiliser la physique à sa sauce. Objet de masse X qui est dans un monde de gravité X avec un objet de masse X et que cet objet doit avoir un état statique puis dynamique à une des action de key.

Le useGravity réponds a sa demande.

private bool _start = false;

void Start ()
{
rigidbody.useGravity = false;
}

void Update () {
if (Input.GetKeyDown(KeyCode.Space))
{
if (!_start)
_start = true;
}
}

void FixedUpdate()
{
if (_start)
{
gameObject.rigidbody.useGravity = true;
}
}

Le vrai dommage c'est que le rigidbody.isKinematic ne semble pas bien fonctionner, cela aurai clos une partie le débat.

Pseudo supprimé
19 février 2014 à 15:27:32

Je me relis et finalement entre ma façon d'aborder le problème de SergeantCastlez, même si le useGravity fonctionne. Cela ne traite pas toutes les solutions possibles.

Oki unity_user un point pour toi pour le Sleerp :) .

C'est la bonne soluce.

SergeantCastlez
SergeantCastlez
MP
19 février 2014 à 16:40:49

Ahah !

Et sinon, pour propulser un objet d'un coup comme ça ( imaginons un ballon, le joueur clique et le ballon se lance contre le mur pour revenir ) j'ai pensé utilisé le this.transform.Translate(Vector3(...)) afin de faire bouger l'objet, mais non seulement il se téléporte un tout petit plus loin quand je clique et moi je veux qu'il continue de s'élancer mais en plus il traverse le mur.

Alors j'ai pensé a faire un truc qui ferait en sorte que "Quand la balle rentre en collision avec le mur elle arrête de bouger"

Mais je ne sais pas si c'est la bonne méthode, savez vous m'éclairez ?

Merci bien

-Adridu84-
-Adridu84-
MP
19 février 2014 à 19:29:19

SergeantCastlez :d)

http://docs.unity3d.com/Documentation/ScriptReference/Rigidbody.AddForce.html

http://unity3d.com/learn/tutorials/modules/beginner/physics/addforce

Voilà !

SergeantCastlez
SergeantCastlez
MP
19 février 2014 à 19:34:25

Parfait ! Je te remercie beaucoup !

SergeantCastlez
SergeantCastlez
MP
19 février 2014 à 19:46:29

Et pour mon soucis de collision ? Parce que là contre le mur il se bloque, et j'arrive pas a faire en sorte qu'il se cogne contre le mur et avec la force bah il rebondit dans la pièce quoi, vous savez ?

vintrigue
vintrigue
MP
19 février 2014 à 20:23:54

T'as sûrement un paramètre de damping quelque part, augmente-le.

-Adridu84-
-Adridu84-
MP
19 février 2014 à 22:42:42

Sinon tu fait que quant il rentre en collision avec le cube, un rigidbody.addforce l'envoie dans le sens inverse avec une force faible pour donner un effet de rebond.

Et si tu veut, tu peut m'ajouter sur Skype : adridu84120 pour que je te réponde plus instantanément.

-Adridu84-
-Adridu84-
MP
19 février 2014 à 23:09:27

Tu m'as fait réfléchir avec ton histoire de rebond, et j'ai pas pu m'empêcher de faire un petit script :

http://pastebin.com/Xi1uY2Vn

En gros, j'ai fait une salle (quatre murs, un sol et un plafond) et quand je lance la scene, le cube se met à rebondir partout dans la salle presque à l'infini.

Je l'ai export en asset pour ce qui veulent voir le résultat :

https://mega.co.nz/#!RkQ0zCpZ!iT2IOSbaiib9IJrvekEbGUZ4cWbRnnxn5ZD_OHGoWC0

Pseudo supprimé
19 février 2014 à 23:30:56

Il faut créer un materiel physique , l'affecter à ton rigidbody;

De mémoire c'est la prop Bounciness qui te permet d'obtenir le rebond.

Pseudo supprimé
19 février 2014 à 23:32:51

https://docs.unity3d.com/Documentation/Components/class-PhysicMaterial.html

Pseudo supprimé
19 février 2014 à 23:46:16

@-Adridu84-:
Tu met encore du code modifiant la physique du rigidbody sur un Update() ???

Pseudo supprimé
19 février 2014 à 23:50:35

Pdon tu m'as compris, autre que dans FixedUpdate() ??

Pseudo supprimé
20 février 2014 à 14:32:18

Lapintade tu pourrais m'aider s'il te plait

Voila mon soucis je suis en train de faire un travail sur les textures pour mon jeux et j'ai envie de mettre des la tesselation pour certain objets mais quand j'essaye d'augmenter le nombres de triangles avec l'option edge length, il y a rien qui change et du coup le résultat est assez horrible tu aurais pas une solution?

Lapintade
Lapintade
MP
20 février 2014 à 19:32:42

Hello
C'est sympa de me solliciter pour cela, mais je n'utilise pas Unity (enfin si je l'ai installé pour faire quelques tests, mais je ne l'utilise pas serieusement).
La tesselation, je ne sais pas trop ce que cela va t'apporter. Si tes modèles ne sont pas assez detaillés, vaut mieux revoir leur modelisation non ?

Pseudo supprimé
20 février 2014 à 19:41:54

c'est surtout pour les sol en pavé, les mur en brique et les tuiles et des objets comme certains vetements (bonnets, pantalon, sac a dos...)

caelacanthe
caelacanthe
MP
20 février 2014 à 22:08:52

Qu'est-ce que cela a à voir avec unity, tu le fais dans un éditeur 3D externe, non? :pf:

DébutPage précedente
Page suivanteFin
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?