Ich habe ein YouTube-Tutorial über die Herstellung eines Tower Defense-Spiels verfolgt (https://www.youtube.com/watch?v=beuoNuK2tbk) und in einer der Episoden lehrt er dir, wie man einen Gegner einem vorgefertigten Pfad folgen lässt. Das hat gut funktioniert, aber ich wollte meinen Gegner drehen lassen, damit er in die Richtung sehen kann, in die er sich bewegte. Ich versuchte, etwas von dem Code zu verwenden, den er in einem späteren Video zeigte (https://www.youtube.com/watch?v=QKhn2kl9_8I), aber es funktionierte nicht, da ich immer einen Fehler bekam, also suchte ich ein bisschen nach und bekam, was ich für eine Lösung hielt. Ich weiß nicht wie repariere diesen Code, wenn jemand von dir helfen kann, würde das sehr geschätzt werden. Ich verwende Unity in einem 3D-Projekt, wenn das hilft. Dies ist der Fehler, den ich bekomme "Schweregrad Beschreibung Projekt Datei Zeile Unterdrückung Status Fehler CS1503 Argument 2: kann nicht konvertieren von 'UnityEngine.Transform' in 'UnityEngine.Quaternion' Tower Defence.CSharp C: \ Benutzer \ Besitzer \ Dokumente \ Tower Defense \ Assets \ Enemy.cs 27 Aktiv“Wie kann ich meinen Gegner so drehen, dass er einem Wegpunkt in Unity gegenübersteht?
using UnityEngine;
using System.Collections;
public class Enemy : MonoBehaviour {
public float speed = 10f;
public float smooth = 2f;
private Transform target;
private int wavepointIndex = 0;
private Object waypoint;
void Start()
{
target = Waypoints.points[0];
InvokeRepeating("nextWaypoint", 0f, 0.5f);
}
void Update()
{
Vector3 dir = target.position - transform.position;
transform.Translate(dir.normalized * speed * Time.deltaTime, Space.World);
transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * smooth);
if (Vector3.Distance(transform.position, target.position) <= 0.4f)
{
GetNextWaypoint();
}
}
void GetNextWaypoint()
{
if(wavepointIndex >= Waypoints.points.Length - 1)
{
Destroy(gameObject);
return;
}
wavepointIndex++;
target = Waypoints.points[wavepointIndex];
}
}
, die perfekt mit dem Entfernen des Fehlers gearbeitet. Gibt es eine Chance, dass du mir helfen kannst, den Feind zum nächsten Wegpunkt zu machen? Ich habe ein Video aufgenommen, das du sehen kannst, um zu sehen, was ich meine. Das Video: https://www.youtube.com/watch?v=b5baqnWLcys –
@ StephenMynes Ich kam nur, um Ihren Fehler zu beheben. ** REPLACE ** 'transform.rotation = Quaternion.Slerp (transform.rotation, target.rotation, Time.deltaTime * smooth);' mit 'transform.LookAt (target);'. Das sollte das Rotationsproblem lösen. – Programmer
Das war perfekt! Ich danke dir sehr! –