這篇介紹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的游戲物體
