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?
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