如何设置相机高度

我试图使用一个教程创建一个俯视相机,这是链接: https://education.roblox.com/en-us/resources/arcade-game-top-down-camera

这是我的代码:

local RunService = game:GetService("RunService")

local camera = workspace.CurrentCamera
local player = game.Players.LocalPlayer
local CAMERA_OFFSET = Vector3.new(-1,20,0)
camera.CameraType = Enum.CameraType.Scriptable

local function onRenderStep()
    if player.Character then
        local playerPosition = player.Character.HumanoidRootPart.Position
        local cameraPosition = playerPosition + CAMERA_OFFSET

        camera.CoordinateFrame = CFrame.new(cameraPosition, playerPosition)
        print("玩家位置 = " .. playerPosition.X .. " : " .. playerPosition.Y .. " : " .. playerPosition.Z)
        print("相机位置 = " .. cameraPosition.X .. " : " .. cameraPosition.Y .. " : " .. cameraPosition.Z)
    end
end

RunService:BindToRenderStep("相机", Enum.RenderPriority.Camera.Value, onRenderStep)

这会将相机设置在玩家上方,符合预期。但是,当我改变 CAMERA_OFFSET 的值(例如将 Y 从 20 改为 200),并重新启动游戏后,相机的位置没有变化,与使用之前的值时的位置相同。 调试玩家和相机的位置,我可以看到偏移量被正确地添加了:

player position = 4.3593798181973e-05 : 2.8005499839783 : -1.193955540657e-05

camera position = -0.99995642900467 : 22.800550460815 : -1.193955540657e-05

player position = 4.3593798181973e-05 : 2.8005499839783 : -1.193955540657e-05

camera position = -0.99995642900467 : 22.800550460815 : -1.193955540657e-05

player position = 4.3593798181973e-05 : 2.8005499839783 : -1.193955540657e-05

camera position = -0.99995642900467 : 22.800550460815 : -1.193955540657e-05

我最终的目标是让相机固定在玩家上方(现在仍然可以通过滚动鼠标上下移动它),但首先要了解如何将它设置在正确的高度。

点赞
用户1296374
用户1296374

如果你在脚本的顶部加上

wait()

它将会完全满足你的需求。

我不确定这是否是正确的做法,或者你是否应该等待某些其他对象完成加载。没有任何错误信息,并且我也找不到任何文档。

2020-05-12 02:58:18