там целая история: я долгое время пытался реализовать его через Transform.SetParent() и отдельный геймобджект на который ставился бы Aim в туррели вехикла, но поскольку по умолчанию при установке нового родителя (и через Transform.parent и через SetParent) сохраняется глобальная позиция геймобджекта относительно префаба вехикла а в функцию через MonoBehaviour (тобишь скрипт VehicleTurretEventHook) может передаваться только один аргумент, в данном случае геймобджект который становится родителем, эта задумка провалилась (кстати почему-то в один момент спустя множество тестов у меня как-то всё заработало и геймобджект Aim не менял свою локальную трансформацию чтобы соответствовать точке в "мире", но по всей видимости это была просто ошибка) позже я решил использовать Transform Constraint который бы смещал Aim туда куда нужно когда вес равен единице: в VehicleTurretEventHook на On Aim Started я ставил Aim.TransformConstraint Weight 1, а также LookAt, чтобы аим всегда смотрел в сторону прицельной сетки (поскольку по умолчанию аим у меня стоит в Yaw геймобджекте чтобы двигаться от первого лица только по горизонтали), и соответственно на On Aim Stopped я ставил Weight 0 и делал LookAt на уже другой префаб (LookAt кстати я делал с таймерами потому что по всей видимости методы в ивентхуке выполняются непоочерёдно) также можно использовать и анимации с аниматором (просто двигая Aim), но я старался избегать этого даже там где это было возможно потому что анимации это также файлы которые занимают место да и просто глаза мозолят в общем основная суть заключается в двигании Aim в туррели вехикла
Привет, как ты сделал прицел? Мне просто интересно.
там целая история:
я долгое время пытался реализовать его через Transform.SetParent() и отдельный геймобджект на который ставился бы Aim в туррели вехикла, но поскольку по умолчанию при установке нового родителя (и через Transform.parent и через SetParent) сохраняется глобальная позиция геймобджекта относительно префаба вехикла а в функцию через MonoBehaviour (тобишь скрипт VehicleTurretEventHook) может передаваться только один аргумент, в данном случае геймобджект который становится родителем, эта задумка провалилась (кстати почему-то в один момент спустя множество тестов у меня как-то всё заработало и геймобджект Aim не менял свою локальную трансформацию чтобы соответствовать точке в "мире", но по всей видимости это была просто ошибка)
позже я решил использовать Transform Constraint который бы смещал Aim туда куда нужно когда вес равен единице: в VehicleTurretEventHook на On Aim Started я ставил Aim.TransformConstraint Weight 1, а также LookAt, чтобы аим всегда смотрел в сторону прицельной сетки (поскольку по умолчанию аим у меня стоит в Yaw геймобджекте чтобы двигаться от первого лица только по горизонтали), и соответственно на On Aim Stopped я ставил Weight 0 и делал LookAt на уже другой префаб (LookAt кстати я делал с таймерами потому что по всей видимости методы в ивентхуке выполняются непоочерёдно)
также можно использовать и анимации с аниматором (просто двигая Aim), но я старался избегать этого даже там где это было возможно потому что анимации это также файлы которые занимают место да и просто глаза мозолят
в общем основная суть заключается в двигании Aim в туррели вехикла
its too tall