2009-10-31 6 views
1

Je suis en train d'utiliser la méthode Physics.Raycast, mais j'obtiens des erreurs disant:Erreur sur l'utilisation raycast

Le match de la meilleure méthode surchargée pour « UnityEngine.Physics.Raycast (UnityEngine.Vector3, UnityEngine.Vector3, float, int) 'a des arguments invalides.

Il est étrange parce que les deux itellisense et la documentation me disent que cela est permis:

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

Toute idée?

Répondre

3

Je pense que vous avez besoin du mot-clé out avant "hit" dans Physics.Raycast (rayon, 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); 
} 
+0

Merci beaucoup. Je n'ai jamais entendu parler du mot-clé out avant. – sharvey

-1

En C# nous devons utiliser un précurseur en paramètre avant le coup variable dans afin d'obtenir la fonction d'assigner des données.