2017-06-18 2 views
0

Ich bin ein bisschen Zauberspruch und ich setze es Richtung von LookAt. Problem ist, dass LookAt meine Zauberanimation vom Spielobjekt entfernt. Objekt, von dem ich Position bekomme, hat Skalierung (3, 3, 3), Mesh-Renderer, Sphere Collider und Starrkörper. (andere Collider befinden sich auf untergeordneten Objekten). Hier ist der Code i zum Gießen Zauber bin mit:transform.LookAt wird aus dem Spielobjekt

public void castSpell(GameObject caster, Transform otherTransform, float duration) 
{ 
    if(animationEnabled) 
    { 
     foreach(var a in animator) 
     { 
      foreach(var b in a.bools) 
      { 
       a.animator.SetBool(b.parameterName, b.parameterValue); 
      } 
      foreach(var i in a.ints) 
      { 
       a.animator.SetInteger(i.parameterName, i.parameterValue); 
      } 
      foreach(var f in a.floats) 
      { 
       a.animator.SetFloat(f.parameterName, f.parameterValue); 
      } 
     } 
    } 

    GameObject Temporary_Spell_Handler; 
    Temporary_Spell_Handler = Instantiate(_Spell, Spell_Emitter.transform.position, Spell_Emitter.transform.rotation) as GameObject; 

    ParticleSystemRenderer pr = Temporary_Spell_Handler.GetComponent<ParticleSystemRenderer>(); 
    float dist = Vector3.Distance(caster.transform.position, otherTransform.position); 

    //Add Spell Script to the casted spell so it handes damage and everything about spells. 
    Spell tempSpell = Temporary_Spell_Handler.GetComponent<Spell>(); 
    tempSpell.caster = caster; 

    if(b_lenghtScale) 
    { 
     pr.lengthScale = -lenghtScale; 
    } 

    if(lookAtEnemy) 
    { 
     Temporary_Spell_Handler.transform.LookAt(otherTransform); 
    } 

    Destroy(Temporary_Spell_Handler, duration); 
} 

und hier wird das Bild, wie es aussieht:

enter image description here

ich das Problem gefunden. Mein ball ist auf (3, 3, 3) skaliert, also ging es nach oben und der Drehpunkt des Objekts blieb unten. Wie kann ich dieses Problem überwinden? enter image description here

+0

Ich bin mir nicht sicher, was das Problem ist. Können Sie einen Screenshot hinzufügen, was Sie * erwarten *? – Draco18s

+0

Sie sehen, dass der Blitz auf den Boden geht, nicht auf den Ball (über den Mittelpunkt des Donners sprechen). Also möchte ich irgendwie den Blickwinkel ändern. –

+1

Das hängt ganz von der Einrichtung und Art Ihrer Objekte ab. Wenn die Grafik des Blitzes nicht mit der Achse des Spielobjekts ausgerichtet ist, muss die Grafik fixiert werden. Wenn die Prefab-Ebene nicht mit der Achse ausgerichtet ist, muss dies behoben werden. Wenn die vorgefertigte Achse nicht auf die Stelle zeigt, auf die sie zeigen soll, dann ist das * ein ganz anderes Problem. * Ich kann aus dem Bild, das Sie gepostet haben, nicht sagen, welches das ist. – Draco18s

Antwort

1

Ich erstellte leer gameobject und machen es zu einem Elternteil zu meinem ball. Dann setze ich die Position des Spielobjekts (es ist jetzt Pivot) zu der Stelle wo ich weiß (um die Mitte des Balls y = 5) und dann auf dem Ball das Gegenteil (y = -5).

Dann zum Gameobject erstellt i als Pivot-i-Tag pivotChange hinzugefügt und dann in meinem castSpell Skript habe ich diese Änderung bei lookAtEnemy Teil:

if(lookAtEnemy) 
    { 
     if(other.transform.parent != null && other.transform.parent.gameObject.tag == "pivotChange") 
     { 
      Temporary_Spell_Handler.transform.LookAt(other.transform.parent.gameObject.transform); 
     } 
     else 
     { 
      Temporary_Spell_Handler.transform.LookAt(other.transform); 
     } 
    } 

Und es funktioniert gut.

+0

Froh, dass Sie es ausgearbeitet haben. :) Grundsätzlich bestand das Problem darin, dass die Pivot-Position Ihrer Prefab an einer Stelle war (auf dem Boden, wo diese gelbe Platte war) und um sie richtig auszurichten, benötigten Sie ein Child-Objekt (oder neues Eltern-Objekt) hatte seinen Drehpunkt an der gewünschten Stelle. Es war meine erste Vermutung über das Problem, aber ich hatte keine Möglichkeit, sicher zu sein, aber ich habe ein wenig Wissen darüber vermittelt, wie man es debuggt. :) – Draco18s

+0

Vielen Dank :) –

Verwandte Themen