Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local player = game.Players.LocalPlayer
- local runService = game:GetService('RunService')
- local camera = workspace.CurrentCamera
- -- Переменная для хранения текущего соединения с RenderStep
- local cameraConnection
- -- Функция для настройки камеры
- local function setupCamera(character)
- local root = character:WaitForChild('HumanoidRootPart') -- Ждем появления HumanoidRootPart
- if not root then return end
- -- Настраиваем камеру
- camera.CameraSubject = root
- camera.CameraType = Enum.CameraType.Scriptable
- camera.FieldOfView = 50
- -- Если уже есть активное соединение с RenderStep, отключаем его
- if cameraConnection then
- runService:UnbindFromRenderStep('Camera')
- end
- -- Функция для обновления позиции камеры
- local function onUpdate()
- if character and root then
- camera.CFrame = CFrame.new(root.Position) * CFrame.new(0, 1, 40)
- end
- end
- -- Привязываем обновление камеры к RenderStep
- cameraConnection = runService:BindToRenderStep('Camera', Enum.RenderPriority.Camera.Value, onUpdate)
- end
- -- Обработка появления персонажа
- player.CharacterAdded:Connect(setupCamera)
- -- Если персонаж уже существует (например, после загрузки игры), настраиваем камеру
- if player.Character then
- setupCamera(player.Character)
- end
- --[[
- Что изменено:
- Тип камеры:
- Чтобы полностью управлять камерой через скрипт, нужно использовать Enum.CameraType.Scriptable. Это отключит автоматическое управление камерой и позволит скрипту полностью контролировать её поведение.
- Добавлено ожидание HumanoidRootPart:
- Используется WaitForChild, чтобы дождаться появления HumanoidRootPart. Это важно, так как после смерти персонаж пересоздается, и HumanoidRootPart может появиться не сразу.
- Очистка старого BindToRenderStep:
- Если персонаж умирает, и появляется новый, старый BindToRenderStep отключается с помощью UnbindFromRenderStep. Это предотвращает множественные вызовы onUpdate.
- Переменная cameraConnection:
- Добавлена переменная для хранения текущего соединения с RenderStep, чтобы его можно было отключить при необходимости.
- Проверка существующего персонажа:
- Если персонаж уже существует (например, при загрузке игры), камера настраивается сразу.
- Как это работает:
- Когда у игрока появляется новый персонаж (например, после смерти), вызывается функция setupCamera.
- Внутри setupCamera камера настраивается на слежение за новым HumanoidRootPart.
- Если персонаж умирает, старый BindToRenderStep отключается, и камера начинает следить за новым персонажем.
- ]]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement