Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сделать что парт поворачивался за тобой роблокс студио

Петя Корнеев Ученик (50), открыт 2 недели назад
нужно чтоб если я повернул игрока то мяч поворачивался за игроком

код который есть сейчас:
 local ball = script.Parent 

ball.Touched:Connect(function(hit)
local HumanoidRootPart = game.Players:GetPlayerFromCharacter(hit.Parent).Character.HumanoidRootPart
if HumanoidRootPart then
while task.wait() do
ball.CFrame = HumanoidRootPart.CFrame + Vector3.new(0, -2, 5)
end
end
end)
1 ответ
Иван Иванов Знаток (322) 2 недели назад
Чтобы сделать, чтобы часть (part) поворачивалась за игроком в Roblox Studio, можно использовать скрипт с помощью объектов `BodyGyro` или `BodyAngularVelocity`. Вот два способа реализации:

---

### Способ 1: Использование `BodyGyro`
`BodyGyro` — это объект, который позволяет части следить за указанной точкой или ориентацией.

#### Шаги:
1. Создайте `Part`, которую вы хотите повернуть.
2. Вставьте скрипт в `Script` внутри этой части.
3. Добавьте объект `BodyGyro` к части.

#### Пример кода:
```lua
-- Получаем ссылки на объекты
local part = script.Parent -- Часть, к которой прикреплен скрипт
local bodyGyro = Instance.new ("BodyGyro") -- Создаем BodyGyro
bodyGyro.MaxTorque = Vector3.new (10000, 10000, 10000) -- Устанавливаем максимальный крутящий момент
bodyGyro.D = 50 -- Параметр для плавности движения

-- Добавляем BodyGyro к части
bodyGyro.Parent = part

-- Функция обновления направления
game:GetService("RunService").RenderStepped:Connect(function()
local player = game.Players.LocalPlayer
if player and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
local targetPosition = player.Character.HumanoidRootPart.Position -- Позиция игрока
bodyGyro.CFrame = CFrame.new (part.Position, targetPosition) -- Устанавливаем направление
end
end)
```

---

### Способ 2: Ручное изменение `CFrame`
Вместо использования `BodyGyro` можно напрямую изменять `CFrame` части, чтобы она поворачивалась в сторону игрока.

#### Пример кода:
```lua
-- Получаем ссылки на объекты
local part = script.Parent -- Часть, к которой прикреплен скрипт

-- Функция обновления направления
game:GetService("RunService").RenderStepped:Connect(function()
local player = game.Players.LocalPlayer
if player and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
local targetPosition = player.Character.HumanoidRootPart.Position -- Позиция игрока
part.CFrame = CFrame.new (part.Position, targetPosition) -- Изменяем CFrame части
end
end)
```

---

### Разница между способами:
- **Способ 1 (`BodyGyro`)**: Подходит, если вы хотите, чтобы поворот был более динамичным и реалистичным, особенно если часть движется.
- **Способ 2 (ручное изменение `CFrame`)**: Более простой и прямолинейный подход, но может быть менее гибким для сложных движений.

---

### Советы:
- Если вы используете `BodyGyro`, экспериментируйте с параметрами `MaxTorque` и `D`, чтобы добиться желаемой плавности.
- Убедитесь, что у вашей части есть физические свойства (например, `CanCollide` и `Anchored`), если это необходимо для вашего проекта.
Петя КорнеевУченик (50) 2 недели назад
1 способ не работает а 2 способ просто поворачивает мяч но он не следует за игроком
Похожие вопросы