这篇介绍Cameras资源包。
文件夹下有名为“CameraGuidelines.txt”的说明文档,简要介绍了各个预设的作用和用法。
Prefabs文件夹:
CctvCamera.prefab:
视角跟随指定游戏物体转动的摄像机预设,摄像机转动时位置保持不变。
FreeLookCameraRig.prefab:
对指定游戏物体作位置跟随的摄像机预设,可由玩家控制摄像机旋转。
HandheldCamera.prefab:
类似CctvCamera,增加了模拟手持摄像机轻微晃动效果的功能。
MultipurposeCameraRig.prefab:
对指定游戏物体作位置和旋转跟随的摄像机预设。
Scripts文件夹:
这个包的脚本间有比较完整的继承关系,所以我们先上个类图。
AbstractTargetFollower:
目标跟随脚本的基类。
m_Target:跟随目标
m_AutoTargetPlayer:是否自动跟随Tag为“Player”的游戏物体
m_UpdateType:刷新类型(FixedUpdate中更新、LateUpdate中更新或手动更新)
LookatTarget:
AbstractTargetFollower的子类,提供视角跟随功能,随目标移动旋转自身X轴和Y轴。
RotationRange:X轴和Y轴的旋转角度范围
FollowSpeed:跟随运动的速度
HandHeldCam:
LookatTarget的子类,增加了模拟手持摄像机的镜头晃动效果。
SwaySpeed:晃动速度
BaseSwayAmount:基础晃动范围
TrackingSwayAmount:跟随时的晃动范围
TrackingBias:跟随时晃动的偏移量
TargetFieldOfView:
AbstractTargetFollower的子类,主要配合LookatTarget使用,当视角转动时动态调整摄像机FOV,使目标在游戏视图中的显示大小保持不变。
FovAdjustTime:摄像机调整FOV所需要的时间
ZoomAmountMultiplier:FOV缩放系数,数值越大目标在游戏视图中显示越小
IncludeEffectsInSize:原代码未实现此字段功能
PivotBasedCameraRig:
AbstractTargetFollower的子类,作为基于三级结构的摄像机控制脚本的基类。
可通过调整Camera结点位置设定摄像机跟随时的偏移量。
AutoCam:
PivotBasedCameraRig的子类,提供可定制的摄像机跟随功能。
MoveSpeed:摄像机位移速度
TurnSpeed:摄像机视角旋转速度
RollSpeed:摄像机Z轴旋转速度
FollowVelocity:选中时,当目标移动速度大于阈值时使用该速度方向作为摄像机旋转朝向;否则使用目标旋转方向作为摄像机旋转方向
FollowTilt:是否跟随目标作Z轴旋转
SpinTurnLimit:旋转速度阈值,当目标旋转速度大于此值时摄像机停止跟随其旋转
TargetVelocityLowerLimit:若选中FollowVelocity,则当目标移动速度大于该值时,使用该速度方向作为摄像机旋转朝向
SmoothTurnTime:摄像机旋转的阻尼系数
FreeLookCam:
PivotBasedCameraRig的子类,提供摄像机位置跟随功能,可由玩家控制摄像机视角旋转。
MoveSpeed:摄像机位移速度
TurnSpeed:摄像机旋转速度
TurnSmoothing:摄像机旋转的平滑系数
TiltMax:旋转俯角的最大值
TiltMin:旋转仰角的最大值
LockCursor:是否锁定光标
VerticalAutoReturn:玩家输入停止后是否自动复位摄像机纵向旋转
ProtectCameraFromWallClip:
用于当摄像机贴近障碍物时,改变摄像机的位置以防止游戏画面被裁切。
ClipMoveTime:摄像机规避裁切运动的时长
ReturnTime:摄像机不裁切时的复位时长(一般需要高于ClipMoveTime)
SphereCastRadius:探测障碍物所用的射线半径
VisualiseInEditor:是否在编辑器窗口中绘制射线轨迹
ClosestDistance:摄像机与障碍物间的最小距离
DontClipTag:探测障碍物时,忽略具有此Tag的游戏物体