摄像机
在 YAHAHA 中,摄像机对象(camera objects)就像通往 3D游戏世界的窗口,提供不同的视角和画面。你可以在场景中添加多个摄像机,但同一时刻只能有一个处于激活状态,作为游戏观察世界的“眼睛”。
关键要素
摄像机对象的属性(properties)对于定义 3D游戏世界的视角和探索方式至关重要。以下是最重要的属性:
- 虚拟摄像机名称(Virtual Camera Name) 属性用于标识一个虚拟摄像机。
- 摄像机模式(Camera Mode) 属性提供预设的摄像机选项。
- 视场角(FOV) 属性表示可见世界的范围。
- 跟随目标(Follow Target) 属性决定摄像机跟随的目标。
- 注视目标(LookAt Target) 属性决定摄像机始终聚焦的目标。
- 启用物理(Enable Physics) 属性控制摄像机的碰撞体是否激活。
如何使用摄像机
默认摄像机
每个基于模板的新项目都会自动创建一个名为 Default 的虚拟摄像机。它类似于 3D RPG 游戏中的摄像机,从第三人称视角跟随玩家角色,支持缩放、围绕角色旋转,并在靠近碰撞体时自动避让。
添加摄像机
要创建摄像机:
- 快速设置:从 资产库(Asset Library) 选择摄像机组件(如 RTS、横版、俯视)即可快速开始。
- 高级配置:使用 高级模式(Advanced Mode) 下的摄像机模块(camera module)。
当你从资源库添加摄像机组件时,会自动生成一个不可重命名的 Default 摄像机。为避免冲突,创建新摄像机前请先移除已存在的 Default 摄像机。
如果你需要更多自定义选项,摄像机模块还提供了额外功能。除了 Default 摄像机,还有内置的 Gun 和 Car 两种摄像机。你还可以更精细地控制摄像机,例如将 摄像机模式(Camera Mode) 设为 EntityControl,并通过脚本修改挂载对象的变换(transform),从而控制摄像 机的位置和朝向。
切换摄像机
要在摄像机间切换,可调用 YaVirtualCameraAPI.ActiveCameraByEntity 或 YaVirtualCameraAPI.ActiveCameraByName。
代码示例
-- 客户端脚本:当触发区被激活时,2 秒内切换到该区域绑定的摄像机
local self = script:SelfEntity()
PhysicsAPI.Instance(self):OnTriggerEnter(function(entity)
local character = YaScene:GetComponent(script:GetComponentType("YaCharacterComponent"), entity)
if character== nil then
return
end
YaVirtualCameraAPI.ActiveCameraByEntity(self,2)
end)
你也可以将新摄像机命名为 Default,以覆盖默认摄像机的属性,从而获得不同的游戏视角。