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?

Foi útil?

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