RETOUR AU SITE UNITY3D-FRANCE Forum Unity3D-France • Afficher le sujet - Changer la masse

Changer la masse

Re: Changer la masse

Messagepar Benjiz » 01 Mai 2012, 14:54

giyomuSan a écrit:
Code: Tout sélectionner
function Start() {

  for( var t : Transform in transform)
    t.GetComponent(Rigidbody).mass = 50;

}


Il mettra un warning pour un implicit downcast ..=_= que c'est con a utiliser ce js ..^^
sinon evidemment faut s assurer que tes objets ont leur Rigidbody sinon t aura des erreurs..de meme que ce bout de code doit se trouver sur le root objet.



Un énorme merci ..

Enffinnn sujet résolu merci a tous
Benjiz
 
Messages: 158
Inscription: 24 Oct 2011, 13:59

Re: Changer la masse

Messagepar Benjiz » 01 Mai 2012, 15:22

Si il pouvait y avoir une petite description du code aussi ca serais super :mrgreen:

Si on pouvais aussi me dire pourquoi ce script fonctionne pas ..

:

Code: Tout sélectionner
var Player:GameObject;

function Update() {
if(Player.rigidbody.mass == 0.6 ){
  for( var t : Transform in transform)
    t.GetComponent(Rigidbody).mass = 50;

}
}
Benjiz
 
Messages: 158
Inscription: 24 Oct 2011, 13:59

Re: Changer la masse

Messagepar Benjiz » 01 Mai 2012, 19:07

giyomuSan a écrit:
Code: Tout sélectionner
function Start() {

  for( var t : Transform in transform)
    t.GetComponent(Rigidbody).mass = 50;

}


Il mettra un warning pour un implicit downcast ..=_= que c'est con a utiliser ce js ..^^
sinon evidemment faut s assurer que tes objets ont leur Rigidbody sinon t aura des erreurs..de meme que ce bout de code doit se trouver sur le root objet.


[/quote]


Toi ton code permet que tous ceux qui sont dans le " reate empty" ( je sais pas comment ca s'apelle " array ? " ) ont la meme masse durant toutes la scene

mais moi ils doivent avoir des masses differentes qu'a certains moment


exmple :

au début il ont une masse de 1

quand le perso touche un gameobject ils changent et ont une masse de : 0.6

etc

Edit : toujours pas trouvé ..
Benjiz
 
Messages: 158
Inscription: 24 Oct 2011, 13:59

Re: Changer la masse

Messagepar Iwa » 02 Mai 2012, 09:37

Bon j'y connais pas grand chose en js, mais il te faudrait une condition de déclenchement. Quand le perso touche un gameObject tu dois avoir un "truc" (je ne suis pas sûre mais genre le collider de ton player) qui te dit que tu as touché un objet, tu récupères cet objet et ensuite tu vas chercher ledit objet dans ton array.

Je peux pas te filer de code parce que je suis pas au fait de toutes les variables mais voici l'algo en gros :

Quand tu updates :
Si (monPlayer.collideAvecUnObjet())
var monObjet = monPlayer.getObjetCollide()

pour ObjetsAMasseChangeante ObjectCourant:
si monObjet == ObjetCourant alors :
ObjetCourant.changerMasse(10)


En gros ça donnerait ça en idée. Reste qu'à trouvé comment avoir l'objet ou les objets avec qui tu collides et le reste tu as déjà toutes les billes. Ca te suffit comme explication?
Iwa
 
Messages: 31
Inscription: 25 Avr 2012, 16:20

Re: Changer la masse

Messagepar Benjiz » 02 Mai 2012, 14:30

Ralala dsl mais je comprends pas grand chose ...
Benjiz
 
Messages: 158
Inscription: 24 Oct 2011, 13:59

Re: Changer la masse

Messagepar Iwa » 02 Mai 2012, 14:34

mmmmh bon pour faire plus simple je résume la situation :

toi tu veux changer l'état de ton objet quand tu rentres en contact avec lui via ton player c'est bien ça?

Là le code que tu as ça change effectivement toutes les masses de tout les objets mais pas quand tu l'as décidé. Donc il faut conditionner ton changement d'état. Jusque là tu es d'accord?

Est-ce que déjà tu arrives à récupérer l'évènement "quand le player touche un objet"?
Iwa
 
Messages: 31
Inscription: 25 Avr 2012, 16:20

Re: Changer la masse

Messagepar Benjiz » 03 Mai 2012, 17:07

L'evenement c'est a dire ?
Benjiz
 
Messages: 158
Inscription: 24 Oct 2011, 13:59

Re: Changer la masse

Messagepar Iwa » 04 Mai 2012, 09:33

Euh pour faire plus simple l'évènement c'est le déclenchement de ta condition.

En gros en plus simple : est-ce que actuellement tu arrives à récupérer le fait que ton player touche à ton objet dont tu veux changer la masse?
Iwa
 
Messages: 31
Inscription: 25 Avr 2012, 16:20

Re: Changer la masse

Messagepar Benjiz » 04 Mai 2012, 21:49

Oui avec ma fonction OntriggerEnter
Benjiz
 
Messages: 158
Inscription: 24 Oct 2011, 13:59

Re: Changer la masse

Messagepar Iwa » 10 Mai 2012, 16:42

Parfait donc la partie la plus compliquée est déjà faite. Je pense quand ajoutant une simple ligne dans ton code ça marcherait, je ne connais pas la syntaxe javascript ni celle qui convient pour cette fonction mais essaye de faire un if de ce type là


Code: Tout sélectionner
function Start() {

  for( var t : Transform in transform)
  {
    if (t == tonEntité.OntriggerEnter())
           t.GetComponent(Rigidbody).mass = 50;
  }
}


A supposé que ton OntriggerEnter renvoie bien l'objet donc tu veux changer la masse.

Tu vois ce que je veux dire? :)
Iwa
 
Messages: 31
Inscription: 25 Avr 2012, 16:20

Précédente

Retourner vers Scripting Javascript, C# et Boo

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités