Ошибка при использовании Raycast
Вопрос
Я пытаюсь использовать Physics.Raycast
метод, но я получаю ошибки, говорящие:
Наилучший перегруженный метод подходит для 'UnityEngine.Физика.Радиовещание (UnityEngine.Вектор3, UnityEngine.Vector3, float, int)' имеет некоторые недопустимые аргументы.
Это странно, потому что и itellisense, и документация говорят мне, что это разрешено:
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);
}
Есть какие-нибудь идеи?
Решение
Я думаю, вам нужно ключевое слово out перед "hit" в Physics.Raycast (луч, попадание).
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);
}
Другие советы
В C # мы должны использовать параметр-предшественник out до того, как переменная попадет в in чтобы заставить функцию присваивать ей данные.
Не связан с StackOverflow