Domanda

Sto cercando di utilizzare la Physics.Raycast il metodo, ma mi dà errore dicendo:

Il miglior metodo di overload match per 'UnityEngine.La fisica.Raycast(UnityEngine.Vector3, UnityEngine.Vector3, float, int)' ha alcuni argomenti non validi.

E ' strano perché sia itellisense e la documentazione mi dicono che questo è consentito:

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);
}

Qualche idea?

È stato utile?

Soluzione

Penso che avete bisogno la parola chiave out prima di "hit" in Fisica.Raycast(ray, hit).

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);
}

Altri suggerimenti

In C#, dobbiamo utilizzare un precursore parametro out prima la variabile colpito per ottenere la funzione di assegnare i dati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top