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?

War es hilfreich?

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
scroll top