Camera 对象定义了 3D 世界的视图。在运行中的体验中,每个客户端都有自己的 Camera 对象,它位于该客户端的本地 Workspace 中,可通过 Workspace.CurrentCamera 属性访问。
最重要的相机属性是:
CFrame 代表相镜头的位置和方向。
CameraType 这是被体验的相机脚本阅读的,决定相机应如何在每帧更新。
CameraSubject 这是被体验的相机脚本阅读的,决定相机应该跟关注的对象。
FieldOfView 表示可观察世界的可见范围。
Focus 代表相机正在观察的点。设置此属性很重要,因为某些视觉效果会更详细,并且更频繁地更新,取决于它们与焦点的距离有多近。
请参阅自定义相机以获取更多关于如何调整和自定义相镜头行为的信息。
存储多个相机
请注意,当将 Workspace.CurrentCamera 更改为新的 Camera 时,所有其他 Cameras 都会直接从 Workspace 降级。如果您需要存储多个相机并在需要时间切换之间使用它们,建议将它们存储在 或 下的 中,在其更改时仍然保持不变。
概要
属性
指定 Enum.CameraType 由相机脚本阅读。
设置相镜头的斜视野角度。
设置相镜头的垂直查看野角度。
确定在视窗大小变更情况下保持不变的 Camera 的FOV值。
设置在 Roblox 的图形系统中优先级较高的 3D 空间区域。
切换是否使用 VR 设备的相机自动跟踪玩家的头部运动。
设置虚拟现实使用时用户对世界的视角缩放。
设置相镜头的视野角在最长视窗轴上。
描述相镜头附近剪切平面的负 Z 偏移值,以螺柱为单位。
切换是否在玩家使用 VR 设备时应用倾斜和滚动的 CFrame 属性。
Roblox 客户端上设备安全区域的尺寸。
方法
设置在相镜头的 Z 轴周围应用的当前旋转。
从视窗位置(以像素计)创建一个单位Ray,深度从Camera,面向相镜头的方向。不考虑 CoreUISafeInsets 插入。
返回 Vector3 worldPoint 屏幕位置和深度以及这一点是否在屏幕边界内。用于图形用户界面插入的帐户。
返回 Vector3 worldPoint 屏幕位置和深度以及这一点是否在屏幕边界内。不考虑图形用户界面插入。
方法
获取 PVInstance 的枢轴。
将 以及所有其子孙 转换为位于指定 的位置,使旋转点现在位于指定的 。
属性
方法
GetRoll
返回
代码示例
local currentRoll = math.deg(workspace.CurrentCamera:GetRoll()) -- 获取相机的当前卷在度数。
if currentRoll ~= 20 then
workspace.CurrentCamera:SetRoll(math.rad(20)) -- 如果相机不在 20 度滚动角度,滚动将设置为 20 度。
end