Синтаксические ошибки - это те ошибки, которые вообще не позволяют вашей игре / программе работать.Они похожи на грамматические ошибки, которые нужно исправить перед тем, как вы сможете запустить свой код.
Синтаксическая ошибка - ваш компьютер говорит вам:
Я не могу запустить это, потому что я неНе понимаю. или Я не могу запустить это, потому что это не разрешено.
Одним из примеров будет int x = "Hello World"
.Это недопустимо, потому что я не могу присвоить строковое значение целому числу (например).
Но ваш код, не имеющий никаких синтаксических ошибок, не означает, что он будет выполнять то, для чего вы его хотели , он просто означает, что ваш код будет работать.
Хороший и простойспособ отладки вашего кода в Unity заключается в добавлении операторов Debug.Log("My Log Message");
в ваш код, если вы считаете, что это будет полезно.Они будут записаны на выход вашей консоли в Unity, пока вы находитесь в режиме воспроизведения.Например, вы можете сделать что-то подобное, чтобы постоянно регистрировать положение и поворот вашего креста:
Debug.Log("Cross Position: " + standardCross.transform.position);
Debug.Log("Cross Rotation: " + standardCross.transform.rotation);
Просто обязательно удалите их, как только закончите с ними, потому что наличие Debug.Logs в вашем коде требует значительных усилий.ударить по производительности.
Еще один, более сложный способ отладки вашего кода - использование точек останова в Visual Studio или любой IDE / Editor, которую вы используете.В основном это сводится к объявлению точек, в которых ваша программа должна приостановить выполнение, чтобы вы смотрели на значения в самой вашей программе.Это довольно удобно, но выходит за рамки того, что я мог бы рассказать вам в этом тексте, поэтому, пожалуйста, взгляните на этот пример использования для Unity: Отладка игр Unity с помощью Visual Studio
Теперь к вашему коду:
Первое: есть Vector3.down, поэтому вам не нужно использовать -Vector3.up.
Второе: вам нужен GameObject каккрестик?Почему бы просто не добавить вместо этого UI-Crosshair?Таким образом, он всегда остается в центре экрана, где бы вы ни поворачивали камеру.
Просто добавьте новое изображение в свой пользовательский интерфейс через GameObject -> UI -> Image, придайте ему вид перекрестия в инспектореи заблокируйте его в середине экрана, щелкнув левой кнопкой мыши на маленьком перекрестии в верхнем левом углу Инспектора, пока у вас выбрано ваше изображение, а затем нажмите Shift + Alt + щелчок левой кнопкой мыши по средней опции.
Если вы действительно хотите использовать отдельный объект gameObject в качестве перекрестия , тогда, возможно, присоедините его к объекту вашего игрока, как ребенка.Таким образом, он будет автоматически перемещаться и вращаться вместе с вашим игроком, и вам не нужно делать это с помощью скрипта.
Надеюсь, это поможет!