Олег Князев
Мастер
(1946)
3 недели назад
Проверьте метод крепления:
Убедитесь, что пистолет привязан к игроку с помощью Transform.parent или GameObject.transform.SetParent().
Если используется Transform.parent, убедитесь, что пистолет является дочерним элементом игрока в иерархии объектов.
Если используется GameObject.transform.SetParent(), проверьте, правильно ли указан объект-родитель (игрок).
2. Проверьте настройки вращения:
Убедитесь, что у пистолета не включен Rigidbody с isKinematic = false.
Если используется Rigidbody, проверьте, не ограничено ли вращение пистолета по оси вращения игрока.
Проверьте, не использует ли пистолет скрипт, который мог бы влиять на его вращение.
3. Используйте LookAt:
Прикрепите к пистолету пустой объект, который будет служить точкой фокуса.
В скрипте игрока добавьте LookAt к пустому объекту.
Пистолет будет автоматически поворачиваться, чтобы смотреть на точку фокуса, которая будет вращаться вместе с игроком.
4. Используйте AddChild:
Вместо Transform.parent используйте GameObject.transform.AddChild().
AddChild автоматически позиционирует и вращает объект относительно родительского объекта.
5. Используйте RelativeTransform:
Если требуется более точный контроль над позиционированием и вращением, используйте RelativeTransform.
RelativeTransform позволяет задать локальное смещение и вращение объекта относительно родительского объекта.
Никита Фролов
Ученик
(160)
3 недели назад
Можно сделать всё проще, как делали во многих играх, просто делаешь пистолет сразу в руке игрока и это будет 1 объект, потом ставишь пистолету Collision и Transparency на нет, а когда игрок Берёт предмет в руку то просто делаешь так чтобы колизия и транспарент закого появились