Pergunta
Eu estou tentando usar o método Physics.Raycast
, mas recebo erros dizendo:
A melhor correspondência método sobrecarregado para 'UnityEngine.Physics.Raycast (UnityEngine.Vector3, UnityEngine.Vector3, float, int)' tem alguns argumentos inválidos.
É estranho porque ambos itellisense ea documentação me dizer que isso é permitido:
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);
}
Qualquer idéia?
Solução
Eu acho que você precisa a palavra-chave antes de "hit" em Physics.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);
}
Outras dicas
Em C #, devemos usar um precursor para fora do parâmetro antes da variável atingido no a fim de obter a função de dados atribuir a ele.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow