2016-04-09 5 views
0

Ich versuche, ein Spielobjekt bei der Kollision mit einem anderen Objekt zu skalieren, so dass der y-Wert reduziert wird, um einen Abflachungseffekt zu erzielen. Hier ist mein Versuch. Kann nicht herausfinden, warum es nicht funktioniert. Das gameObject wird nicht neu skaliert.Probleme rescaling ein GameObject im Skript

print ("Entered Collision"); 
      if (crusherMagnitude > 3.0 && collisionMagnitude > 3.0) { 
       print ("CRUSHED"); 
       Vector3 scale = transform.localScale; 
       scale.y = .2F; 
       transform.localScale = scale; 
      } 

Antwort

0

Können Sie etwas von dem umgebenden Code veröffentlichen?

Was ich denke passiert ist, dass Sie das falsche Objekt der Kollision skalieren.

Wenn Ihre Kollision sieht aus wie

void OnCollisionEnter(Collision other) 
{ .... 

Sie wollen das ‚andere‘ Objekt skalieren. So Ihr Code wäre:

if (crusherMagnitude > 3.0 && collisionMagnitude > 3.0) { 
      print ("CRUSHED"); 
      Vector3 scale = other.transform.localScale; 
      scale.y = .2F; 
      other.transform.localScale = scale; 
     } 
+0

Ich bin versucht, das Objekt zu skalieren, die an das Skript angebracht ist, so dass es ich denke, es sollte nur transform.localScale – Andy

+0

Mybe sein versuchen .2f zu machen, um 0,2 F? Sie wissen nie .. – Bolhuis

+0

tun Sie einfach: other.tranform.localScale = new Vector3 (0,0.2f, 0); – Desutoroiya