跳转到内容

Camera

摄像机

可对场景中相机进行控制

枚举列表

Camera.PROPERTY

  • 描述: 相机属性
成员名称成员说明
MaxPitch最大俯仰角
MinPitch最小俯仰角
ArmLength相机距离
FOV视场角
SocketOffsetXX轴偏移
SocketOffsetYY轴偏移
SocketOffsetZZ轴偏移

Camera.TARGET_TYPE

  • 描述: 目标类型
成员名称成员说明
Element元件
Character角色
FakeCharacter客户端假人
Creature生物

Camera.SHAKE_TYPE

  • 描述: 晃动波形
成员名称成员说明
perlinPerlin噪声
sinWave正弦波

Camera.CONTROL_MODE

  • 描述: 相机控制模式
成员名称成员说明
All全方向
UpDown仅上下拖动
LeftRight仅左右拖动
None无法拖动

Camera.PRESET_TYPE

  • 描述: 相机预设视角类型
成员名称成员说明
DefaultFree默认自由视角
TransverseView横板视角
TopView俯视角
CloseUpView近身视角
ShootView射击视角

函数列表

SetPosition

  • 描述: 设置相机位置

  • 范围: 客户端

参数列表:

参数类型说明
PosEngine.Vector位置坐标,该坐标为挂载点的坐标
local pos = Engine.Vector(0,100,500)
Camera:SetPosition(pos)

GetPosition

  • 描述: 获取相机位置

  • 范围: 客户端

返回字段:

返回字段字段类型说明
posEngine.Vector位置坐标,该坐标为挂载点的坐标
local CameraPos = Camera:GetPosition()
Log:PrintLog("CameraPos X,Y,Z",CameraPos.X,CameraPos.Y,CameraPos.Z)

GetRealPosition

  • 描述: 获取相机真实位置

  • 范围: 客户端

返回字段:

返回字段字段类型说明
posEngine.Vector位置坐标,该坐标为相机本身的坐标
local CameraPos = Camera:GetPosition()
Log:PrintLog("CameraPos X,Y,Z",CameraPos.X,CameraPos.Y,CameraPos.Z)

SetRotation

  • 描述: 设置相机旋转

  • 范围: 客户端

参数列表:

参数类型说明
RotEngine.Rotator旋转
local rot = Engine.Rotator(90,180,90)
Camera:SetRotation(rot)

GetRotation

  • 描述: 获取相机旋转

  • 范围: 客户端

返回字段:

返回字段字段类型说明
rotationEngine.Rotator旋转
local rot = Camera:GetRotation()
Log:PrintLog(string.format("rot X = %d, Y = %d, Z = %d", rot.X, rot.Y, rot.Z))

SetCameraFOV

  • 描述: 设置相机FOV

  • 范围: 客户端

参数列表:

参数类型说明
Fovnumber相机FOV
local fov = 60
Camera:SetCameraFOV(fov)

GetCameraFOV

  • 描述: 获取相机FOV

  • 范围: 客户端

返回字段:

返回字段字段类型说明
fovnumber相机FOV
local CameraFov = Camera:GetCameraFOV()
Log:PrintLog("CameraFov:",CameraFov)

BindOnWorldPosition

  • 描述: 将相机挂载到指定位置

  • 范围: 客户端

参数列表:

参数类型说明
PosEngine.Vector挂载位置坐标
RotEngine.Rotator挂载旋转
LerpTimenumber过渡时间
local pos = Engine.Vector(0,0,0)
local rot = Engine.Rotator(0,0,0)
local lerpTime = 3
Camera:BindOnWorldPosition(pos,rot,lerpTime)

BindOnTarget

  • 描述: 设置相机绑定至指定目标

  • 范围: 客户端

参数列表:

参数类型说明
TargetTypeCamera.TARGET_TYPE绑定目标类型
TargetIdnumber目标Id
LerpTimenumber过渡时间,单位s
local TargetType = Camera.TARGET_TYPE.Element
--当绑定角色时 TargetType = Camera.TARGET_TYPE.Character TargetId = 玩家UID
--当绑定生物时 TargetType = Camera.TARGET_TYPE.Creature TargetId = 生物ID
local TargetId = 361
local LerpTime = 3
Camera:BindOnTarget(TargetType,TargetId,LerpTime)

LookAtTarget

  • 描述: 让相机固定看向指定目标,相机会固定看向目标。

  • 范围: 客户端

参数列表:

参数类型说明
TargetTypeCamera.TARGET_TYPE固定看向目标类型
TargetIdnumber目标Id
LerpTimenumber过渡时间
local TargetType = Camera.TARGET_TYPE.Element
--当绑定角色时 TargetType = Camera.TARGET_TYPE.Character TargetId = 玩家UID
--当绑定生物时 TargetType = Camera.TARGET_TYPE.Creature TargetId = 生物ID
local TargetId = 236
local LerpTime = 0.5
Camera:LookAtTarget(TargetType,TargetId,LerpTime)

SetProperty

  • 描述: 设置当前玩家的相机属性。支持:最大俯仰角,最小俯仰角,相机距离,视场角,XYZ轴偏移。

  • 范围: 客户端

参数列表:

参数类型说明
PropertyNameCamera.PROPERTY相机属性
Valuenumber相机属性值
Camera:SetProperty(Camera.PROPERTY.FOV,30)

Reset

  • 描述: 将当前玩家的相机还原为初始设置。

  • 范围: 客户端

Camera:Reset()

StartShake

  • 描述: 晃动相机,可以制作屏幕震动效果。

  • 范围: 客户端

参数列表:

参数类型说明
WaveformCamera.SHAKE_TYPE晃动波形
Amplitudenumber振幅
Frequencynumber频率
Timenumber时长(秒)
--振幅频率持续时间可根据实际效果调整
Camera:StartShake(Camera.SHAKE_TYPE.sinWave,5,5,3)

StopShake

  • 描述: 停止相机晃动。

  • 范围: 客户端

Camera:StopShake()

SetControlMode

  • 描述: 设置玩家相机可在哪些方向上拖动,设置支持全方向,仅上下拖动,仅左右拖动,无法拖动。

  • 范围: 客户端

参数列表:

参数类型说明
ModeCamera.CONTROL_MODE相机控制模式
Camera:SetControlMode(Camera.CONTROL_MODE.UpDown)

LockPitch

  • 描述: 将玩家相机的俯仰角锁定在某个数值,此时不可上下拖动相机。

  • 范围: 客户端

参数列表:

参数类型说明
Valuenumber相机的俯仰角值
Camera:LockPitch(50)

UnLockPitch

  • 描述: 解锁相机俯仰角限制。

  • 范围: 客户端

Camera:UnLockPitch()

LockYaw

  • 描述: 将指定玩家相机的偏航角锁定在某个数值,此时不可左右拖动相机。

  • 范围: 客户端

参数列表:

参数类型说明
Valuenumber相机的俯仰角值
Camera:LockYaw(30)

UnLockYaw

  • 描述: 解锁相机偏航角限制。

  • 范围: 客户端

Camera:UnLockYaw()

SetOrthographic

  • 描述: 将相机设置为正交相机。

  • 范围: 客户端

参数列表:

参数类型说明
IsOrthographicboolean是否将主相机设置为正交相机;如果不设置,游戏相机默认是透视相机;正交相机目前不支持渲染阴影。
local IsOrthographic = true
--local IsOrthographic = false
Camera:SetOrthographic(IsOrthographic)

SetOrthographicWidth

  • 描述: 设置正交相机在水平方向上的可视范围的全长。

  • 范围: 客户端

参数列表:

参数类型说明
OrthographicWidthnumber需要相机设置为正交相机,设置正交尺寸才有效,否则忽略。正交相机宽度建议不超过3000。
Camera:SetOrthographicWidth(1500)

GetOrthographicWidth

  • 描述: 获取正交相机在水平方向上的可视范围的全长。

  • 范围: 客户端

返回字段:

返回字段字段类型说明
OrthographicWidthnumber获取正交相机在水平方向上的可视范围的全长;默认值512。
local OrthographicWidth = Camera:GetOrthographicWidth()
Log:PrintLog("OrthographicWidth Value is :",OrthographicWidth)

StartChangePerspectiveByIndex

  • 描述: 根据变化视角信息索引开始变化对应视角

  • 范围: 客户端

参数列表:

参数类型说明
ChangeInfoIndexnumber地图相机设置中预设好的变换视角信息索引
Camera:StartChangePerspectiveByIndex(1)

EndChangePerspective

  • 描述: 根据变化视角信息索引停止变化对应视角

  • 范围: 客户端

参数列表:

参数类型说明
ChangeInfoIndexnumber地图相机设置中预设好的变换视角信息索引
Camera:EndChangePerspective(1)

StartShakeByIndex

  • 描述: 根据相机晃动信息索引开始执行相机晃动

  • 范围: 客户端

参数列表:

参数类型说明
ShakeInfoIndexnumber地图相机设置中预设好的相机晃动信息索引
Camera:StartShakeByIndex(1)

StopShakeByIndex

  • 描述: 根据相机晃动信息索引停止执行相机晃动

  • 范围: 客户端

参数列表:

参数类型说明
ShakeInfoIndexnumber地图相机设置中预设好的相机晃动信息索引
Camera:StopShakeByIndex(1)

ChangeShakeBlendTimeByIndex

  • 描述: 修改相机晃动信息索引对应的晃动混入混出时间

  • 范围: 客户端

参数列表:

参数类型说明
ShakeInfoIndexnumber地图相机设置中预设好的相机晃动信息索引
BlendInTimenumber晃动混入时间,传nil则表示不进行修改
BlendOutTimenumber晃动混出时间,传nil则表示不进行修改
Camera:ChangeShakeBlendTimeByIndex(1, 1, 1)

SetCameraView

  • 描述: 根据预设视角类型设置相机视角

  • 范围: 客户端

参数列表:

参数类型说明
PresetViewTypeCamera.PRESET_TYPE视角类型
Camera:SetCameraView(Camera.PRESET_TYPE.DefaultFree)

MovieCameraStart

  • 描述: 让指定的电影相机开始拍摄

  • 范围: 客户端

参数列表:

参数类型说明
ItemUIDnumber相机ItemUID
Camera:MovieCameraStart(223)

MovieCameraStop

  • 描述: 让指定的电影相机停止拍摄

  • 范围: 客户端

参数列表:

参数类型说明
ItemUIDnumber相机ItemUID
Camera:MovieCameraStop(223)

MovieCameraSetLockRange

  • 描述: 根据索引修改电影相机的锁定追踪范围

  • 范围: 客户端

参数列表:

参数类型说明
ItemUIDnumber相机ItemUID
LockInfoIndexnumber相机锁定信息的索引
LockRangenumber追踪范围(处于范围内才会执行锁定追踪,超出范围立即停止)
local ItemUID = 223
local LockInfoIndex = 1
local LockRange = 100
UGCSCamera:MovieCameraSetLockRange(ItemUID, LockInfoIndex, LockRange)

MovieCameraSetLerpSpeed

  • 描述: 根据索引修改电影相机的锁定追踪插值速度

  • 范围: 客户端

参数列表:

参数类型说明
ItemUIDnumber相机ItemUID
LockInfoIndexnumber相机锁定信息的索引
LerpSpeednumber锁定追踪插值速度(相机锁定目标的速度,速度越小相机跟随越慢,0是最大值锁定最快)
local ItemUID = 223
local LockInfoIndex = 1
local LerpSpeed = 300
UGCSCamera:MovieCameraSetLerpSpeed(ItemUID, LockInfoIndex, LerpSpeed)

MovieCameraStartLock

  • 描述: 根据索引开始锁定(需要先开始拍摄才可以锁定)

  • 范围: 客户端

参数列表:

参数类型说明
ItemUIDnumber相机ItemUID
LockInfoIndexnumber相机锁定信息的索引
Camera:MovieCameraStart(ItemUID)
local ItemUID = 223
local LockInfoIndex = 1
Camera:MovieCameraStartLock(ItemUID,LockInfoIndex)

MovieCameraStopLock

  • 描述: 根据索引结束锁定

  • 范围: 客户端

参数列表:

参数类型说明
ItemUIDnumber相机ItemUID
LockInfoIndexnumber相机锁定信息的索引
local ItemUID = 223
local LockInfoIndex = 1
Camera:MovieCameraStopLock(ItemUID,LockInfoIndex)

GetForward

  • 描述: 获取相机朝向

  • 范围: 客户端

返回字段:

返回字段字段类型说明
forwardEngine.Vector朝向
local forward = Camera:GetForward()
Log:PrintLog("@@## forward", forward.X, forward.Y, forward.Z)