Разница между Raycast и Instantiate - PullRequest
0 голосов
/ 04 ноября 2018

Я прошел несколько уроков и наткнулся на Raycast, в то время как один использовал Instantiate для стрельбы из пистолета, а другой использовал Raycast. Я программировал некоторое время, и я все еще не уверен, должен ли я использовать Raycast или последний. Может кто-нибудь объяснить мне, как это работает.

1 Ответ

0 голосов
/ 04 ноября 2018

Довольно большая разница. На самом деле, они не могли бы быть более разными, но я могу увидеть замешательство, если вы впервые узнаете о них из-за стрельбы из пистолета.

Raycast: Представьте себе лазер. Вы выбираете начальную точку и направление этого лазера, а затем он возвращается туда, куда попадает лазер.

Instantiate: Вы не можете сравнить это с радиовещанием вообще. Unity использует вещи, называемые GameObjects. Игрок - это GameObject, камера - GameObject, местность - GameObject. Instantiate() просто создает новый GameObject.


Использование Raycast() для стрельбы из пистолета довольно просто; Начальная точка - это позиция пистолета, укажите направление, затем вы попадете туда, куда попадает пистолет. Использование Instantiate() для стрельбы из оружия означало бы создание GameObject с именем «bullet» с помощью RigidBody и Collider. Это будет более требовательным к производительности, но вы можете добавить такие вещи, как падение пули, ветер, рикошет. Хотя, возможно, вам все равно придется использовать Raycast(), чтобы убедиться, что ничего не проходит между обновлениями физики, поскольку, вероятно, он движется очень быстро.

В следующий раз вы должны использовать Руководство по Unity для ответа на этот вопрос.

Первое, что появилось в Google для "Unity Instantiate" и "Unity Raycast" .

...