Fehler bei der Verwendung von Raycast
Frage
Ich versuche, die Physics.Raycast
Methode zu verwenden, aber ich bekomme Fehler zu sagen:
Die beste überladene Methode Spiel für 'UnityEngine.Physics.Raycast (UnityEngine.Vector3, UnityEngine.Vector3, float, int)' hat einige ungültige Argumente.
Es ist seltsam, weil beide itellisense und die Dokumentation mir sagen, dass dies erlaubt ist:
RaycastHit hit = new RaycastHit();
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, hit)) {
print(hit.point.ToString());
selection.transform.Translate(hit.point - selection.transform.position);
}
Jede Idee?
Lösung
Ich glaube, Sie das Schlüsselwort out müssen, bevor "Hit" in Physics.Raycast (Ray, schlagen).
RaycastHit hit = new RaycastHit();
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit)) {
print(hit.point.ToString());
selection.transform.Translate(hit.point - selection.transform.position);
}
Andere Tipps
In C # müssen wir einen Vorläufer out-Parameter vor dem Variablen Hit verwenden in Um die Funktion zu erhalten Daten, die ihm zugewiesen werden.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow