摄像机的使用方法
本教程适用于 Party Game Kit 用户。
本教程将带你了解如何通过 YaCameraAPI 在 Studio(工作室)中添加和配置摄像机,无论是通过 Lua 脚本还是节点图(Node Graph)。你将学会:
本教程以 RTS 摄像机为例,演示如何修改三个摄像机属性:与目标的距离、用户输入可控性、 视场角(FOV)。这些方法同样适用于其他类型摄像机和更多属性。让我们开始吧!
设置摄像机
Studio(工作室)默认摄像机为第三人称摄像机(third-person camera),即跟随玩家身后的摄像机。如下为摄像机及默认设置预览:
如果你在制作策略游戏,可能希望将摄像机切换为 RTS 类型(RTS camera),即摄像机位于世界上方。此时需先拥有 RTS 摄像机组件(RTS camera component),并通过 Studio界面操作添加到场景,不能用脚本直接添加。
切换为 RTS 摄像机的步骤:
-
在 Studio(工作室)中,进入 资源库(Asset Library)。
-
选择 逻辑(Logic)>组件(Components),在搜索栏输入 camera。官方团队 Yahaha Creative 发布的所有摄像机组件都会显示。
-
鼠标悬停在 Setting_CameraRTS 组件上,点击 + 添加。你现在拥有了该组件。
-
关闭 资源库,返回编辑模式(Edit Mode)。点击场景中的对象,再点击
打开 属性(Properties)窗口。
-
要将摄像机应用到场景,选择 + 功能(+ Feature)>资源(Assets)>Setting_CameraRTS>RTS 摄像机(RTS camera),找到该组件后点击,即可将其添加到 属性 窗口。
现在,带有如下设置的 RTS 摄像机已准备好。
各参数详情见 RTS CameraSetting。
注意:建议每个场景只使用一个摄像机组件,以保证流畅体验。如需切换视角,需先移除当前摄像机再添加新摄像机。
修改摄像机设置
如需修改 RTS 摄像机设置,有两种主要方式:
用 Lua 脚本修改摄像机设置
前置条件
请确保:
-
已安装 Visual Studio Code 并与 Studio 集成 。如未集成,请参考如何开始编程完成下载与集成。
-
已为实体添加触发器(trigger)。设置方法:
a 在场景中选择一个实体(entity),该实体将作为 Lua 脚本的触发器。本例选择了一株植物。
b 点击
打开 属性(Properties)窗口,关闭实体的碰撞体(collider)。如下图,所选植物的 胶囊体(Capsule)碰撞体已设为 关闭(Off)。
c 点击 + 触发器(+ Trigger)为实体添加触发器。可选 球体(Sphere)、盒体(Box)、胶囊体(Capsule)。本例为植物添加了触发盒,并设置中心和尺寸。

-
为实体添加新的 Lua 脚本。如不清楚操作,请参考创建或添加脚本。
设置摄像机距离
要设置摄像机与目标的距离,调用 SetCameraDistance 方法。
如需将距离设为 100,可用如下代码:
PhysicsAPI.OnTriggerEnter(function(trigger,entity)
--下方逻辑将在角色进入任意触发盒时生效
YaCameraAPI.SetCameraDistance(entity,100)
end)
保存脚本并在播放模式(Play Mode)下测试。下图展示进入触发盒前后的效果:
| 修改前 | 修改后 |
|---|---|
![]() | ![]() |
设置摄像机是否可被用户输入控制
要设置摄像机是否可被用户输入控制,调用 SetCameraControllable 方法。
如需禁止用户控制摄像机,将 controllable 参数设为 false:
PhysicsAPI.OnTriggerEnter(function(trigger,entity)
--下方逻辑将在角色进入任意触发盒时生效
YaCameraAPI.SetCameraControllable(entity,false)
end)
保存脚本并在播放模式下测试。此时用户无法缩放、移动摄像机,也无法干扰预期体验。
设置视场角(FOV)
调用 SetCameraFov 方法设置摄像机视场角(FOV)。如需将 FOV 设为 80,可用如下代码:
PhysicsAPI.OnTriggerEnter(function(trigger,entity)
--下方逻辑将在角色进入任意触发盒时生效
YaCameraAPI.SetCameraFov(entity,80.00)
end)
保存脚本并在播放模式下测试。下图展示进入触发盒前后的效果:
| 修改前 | 修改后 |
|---|---|
![]() | ![]() |
用节点图修改摄像机设置
前置条件
请确保:
-
已安装 Visual Studio Code 并与 Studio 集成。如未集成,请参考如何开始编程完成下载与集成。
-
已为实体添加触发器。设置方法:
a 在场景中选择一个实体(entity),该实体将作为 Lua 脚本的触发器。本例选择了一株植物。
b 点击
打开 属性(Properties)窗口,关闭实体的碰撞体(collider)。如下图,所选植物的 胶囊体(Capsule)碰撞体已设为 关闭(Off)。
c 点击 + 触发器(+ Trigger)为实体添加触发器。可选 球体(Sphere)、盒体(Box)、胶囊体(Capsule)。本例为植物添加了触发盒,并设置中心和尺寸。

-
为实体添加新的节点图(node graph)。添加方法:
a 点击 +组件(+Component)按钮右侧下拉箭头,选择 添加节点图(Add node graph)。

b 点击 + 新建节点图(+ New node graph),输入名称(仅限字母和数字)。本例命名为 ConfigureCamera。
c 点击 编辑(Edit)按钮打开代码编辑器。

打开编辑器后,可能需再次点击 编辑 确认进入编辑视图,如下图:

设置摄像机距离
-
在 编辑器(Editor)空白处右键,调出 添加节点(Add Node)搜索框,输入 onTriggerEnter 并选择第一个结果。注意第二个结果包含 entity 和 YaEntity 参数,不适用于本场景。
-
在 添加节点 搜索框输入 SetCameraDistance 并选择结果。
-
设置摄像机与目标的距离。本例设为 100。
-
用连线将两个节点连接,并将 entity 连接到 targetPlayer。此逻辑将在角色进入任意触发盒时生效。
-
点击
编译并保存节点图。然后在播放模式下测试!
下图展示进入触发盒前后的效果:
| 修改前 | 修改后 |
|---|---|
![]() | ![]() |
设置摄像机是否可被用户输入控制
-
在 编辑器 空白处右键,调出 添加节点 搜索框,输入 onTriggerEnter 并选择第一个结果。注意第二个结果包含 entity 和 YaEntity 参数,不适用于本场景。
-
在 添加节点 搜索框输入 SetCameraControllable 并选择结果。
-
如需允许用户输入则勾选 controllable,本例留空。
-
用连线将两个节点连接,并将 entity 连接到 targetPlayer。此逻辑将在角色进入任意触发盒时生效。
-
点击
编译并保存节点图。然后在播放模式下测试!
设置摄像机视场角(FOV)
-
在 编辑器 空白处右键,调出 添加节点 搜索框,输入 onTriggerEnter 并选择第一个结果。注意第二个结果包含 entity 和 YaEntity 参数,不适用于本场景。
-
在 添加节点 搜索框输入 SetCameraFOV 并选择结果。
-
输入所需 FOV 值,范围 1-179。本例设为 80。
-
用连线将两个节点连接,并将 entity 连接到 targetPlayer。此逻辑将在角色进入任意触发盒时生效。
-
点击
编译并保存节点图。然后在播放模式下测试!
下图展示进入触发盒前后的效果:
| 修改前 | 修改后 |
|---|---|
![]() | ![]() |
参考
YaCameraAPI 提供了丰富的摄像机函数,但并非所有函数都适用于所有摄像机类型。下表列出了各函数与摄像机类型的兼容性,便于查阅。
| 第三人称摄像机 | RTS 摄像机 | 横版摄像机(2D/3D) | 俯视摄像机 | 固定位置与朝向摄像机 | 固定位置与可控视角摄像机 | 固定位置与注视摄像机 | |
|---|---|---|---|---|---|---|---|
| SetCameraOrientation | NA | NA | NA | ||||
| SetCameraPosition | NA | NA | NA | ||||
| SetCameraDistance | NA | NA | NA | ||||
| SetCameraFollowAt | |||||||
| SetCameraLookAt | |||||||
| SetCameraControllable | NA | NA | NA | ||||
| SetCameraFov | |||||||
| SetCameraSensitivity | NA | NA | NA | ||||
| SetCameraNearFarClippingPlane | |||||||
| SetCameraRestore |



