lua - 如何设置相机高度
问题描述
我正在尝试使用教程创建一个自上而下的相机,这是链接: 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("player position = " .. playerPosition.X .. " : " .. playerPosition.Y .. " : " .. playerPosition.Z)
print("camera position = " .. cameraPosition.X .. " : " .. cameraPosition.Y .. " : " .. cameraPosition.Z)
end
end
RunService:BindToRenderStep("Camera", 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
我的最终目标是将相机固定在玩家上方(现在仍然可以通过鼠标滚动上下移动它),但首先要了解如何将其设置在正确的高度。
解决方案
如果你放一个
wait()
在你的脚本的顶部,它会完全按照你的意愿去做。
我不确定这是否是正确的方法,或者您是否应该等待其他对象完成加载。没有任何类型的错误消息,我也找不到任何文档。
推荐阅读
- mv - mv 命令后找不到 node_modules
- amazon-web-services - 我无法让 ELB 通过健康检查
- c# - 想在一个变量中添加多个变量的数据,数组/列表
- python - 如何根据一个句子制作带有多个列表的压缩 OrderedDict?
- python - 谷歌 colab 错误使用谷歌驱动器中的文件
- java - 提取具有返回语句的代码到单独的函数
- python - 如何在要循环的函数中创建函数?
- c# - 有没有办法直接使用 DbModelBuilder 创建带有 EF6 的表?
- css - CSS Grid - 跨越两列,除非该行只包含一列
- html - 点击后引导下拉字体变大