Alex88 Geschrieben 18. September 2012 Melden Share Geschrieben 18. September 2012 Hallo zusammen, ich arbeite im Moment an der KI für mein Spiel und eigentlich funktioniert es auch gar nicht so schlecht, allerdings habe ich jetzt doch mal eine Frage. Nach den üblichen if / else Anweisungen wie z.B. ob der Spieler in der Nähe ist, soll sich die KI in Richtung Spieler drehen. Das habe ich mit folgenden Scriptzeilen umgesetzt: var target : Transform; var rotateSpeed : float = 30.0; ... // KI zum Spieler drehen // --------------------- var lookAtTarget = Quaternion.LookRotation(target.position - transform.position); transform.rotation = Quaternion.Slerp(transform.rotation, lookAtTarget, Time.deltaTime * rotateSpeed); Das klappt soweit auch wunderbar, nur dreht sich die KI auch auf der X und Z Achse, z.B. wenn der Spieler in ein Loch fällt, komplett mit. Das soll sie natürlich nicht machen. Ich habe zwar schon in der Script Reference geschaut, da ich mich mit Quaternions allerdings nicht gut auskenne, komme ich leider nicht weiter. Wie könnte ich die zwei Achsen quasi blockieren? Bei normalen Rotationen wie transform.Rotate oder transform.eulerAngles wäre das ja einfach. P.S. Sorry wegen dem Titel, habe mich bei der Achse verschrieben! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
damuddamc Geschrieben 18. September 2012 Melden Share Geschrieben 18. September 2012 Ich denk so sollte es gehn: var lookAtTarget = Quaternion.LookRotation(new Vector3(target.position.x,transform.position.y,target.position.z) - transform.position); Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 18. September 2012 Melden Share Geschrieben 18. September 2012 Ich tendiere immer dazu, y vom Differenzvektor auf 0 zu setzen. var direction = target.position - transform.position; direction.y = 0; var lookAtTarget = Quaternion.LookRotation(direction); Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
damuddamc Geschrieben 19. September 2012 Melden Share Geschrieben 19. September 2012 kommt ja aufs gleiche raus Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 19. September 2012 Melden Share Geschrieben 19. September 2012 Abgesehen von der Lesbarkeit Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Alex88 Geschrieben 19. September 2012 Autor Melden Share Geschrieben 19. September 2012 Ich danke euch beiden für die schnelle Hilfe. Dann war ich mit meinem Versuch ja gar nicht so weit weg von der Lösung. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.