主题
GameUI.CameraSystem
Camera 仅客户端
命名空间 GameUI.CameraSystem
csharp
public class Camera : IGameObject<GameDataCamera>, IGameObject表示游戏中的摄像机对象,支持跟随目标、切换视角、设置变换、震动等功能。
属性
Main 仅客户端
csharp
public static Camera Main { get; }Link 仅客户端
csharp
public IGameLink<GameDataCamera> Link { get; }获取摄像机的数据链接。
Cache 仅客户端
csharp
public GameDataCamera Cache { get; }获取摄像机的数据缓存。
FollowTarget 仅客户端
csharp
public IActor? FollowTarget { get; set; }获取或设置摄像机的跟随目标。
Transform 仅客户端
csharp
public CameraTransform Transform { get; }获取摄像机的变换信息(位置、旋转、焦距)。
Lock 仅客户端
csharp
public bool Lock { get; set; }获取或设置摄像机锁定状态。
方法
Switch 仅客户端
csharp
public void Switch(IGameLink<GameDataCamera> link, TimeSpan duration = default(TimeSpan))切换摄像机到指定数据链接。
link— 目标摄像机数据链接。duration— 切换动画时长。
SetPosition 仅客户端
csharp
public void SetPosition(Vector3 position, TimeSpan transitionTime)设置摄像机的位置。
position— 目标位置。transitionTime— 过渡动画时长。
SetRotation 仅客户端
csharp
public void SetRotation(CameraRotation rotation, TimeSpan transitionTime)设置摄像机的旋转。
rotation— 目标旋转。transitionTime— 过渡动画时长。
SetFocalLength 仅客户端
csharp
public void SetFocalLength(float focalLength, TimeSpan transitionTime)设置摄像机的焦距。
focalLength— 目标焦距。transitionTime— 过渡动画时长。
SetTransform 仅客户端
csharp
public void SetTransform(CameraTransform transform, TimeSpan transitionTime)设置摄像机的完整变换。
transform— 目标变换。transitionTime— 过渡动画时长。
Shake 仅客户端
csharp
public void Shake(float intensity, TimeSpan duration, float frequency, CameraShakeDirection direction)使摄像机产生震动效果。
intensity— 震动强度。duration— 震动时长。frequency— 震动频率。direction— 震动方向。
RotateAround 仅客户端
csharp
public void RotateAround(ScenePoint point, Angle rate, TimeSpan duration)使摄像机围绕指定点旋转。
point— 旋转中心点。rate— 旋转速率。duration— 旋转时长。
GameDataCamera 双端
命名空间 GameUI.CameraSystem.Data
csharp
public class GameDataCamera : GameDataCategory<GameDataCamera>, IGameDataCategory<GameDataCamera>, IGameData<GameDataCamera>, IGameData相机配置数据,定义视角、跟随、缩放、手势等行为。
构造函数
GameDataCamera 双端
csharp
public GameDataCamera(GameLink<GameDataCamera, GameDataCamera> link)GameDataCamera 双端
csharp
public GameDataCamera(IGameLink<GameDataCamera> link)属性
TargetingMode 双端
csharp
public CameraTargetingMode TargetingMode { get; set; }相机瞄准模式,决定相机如何锁定或跟随目标。默认 Follow。
PositionBias 双端
csharp
public Vector3 PositionBias { get; set; }相机位置偏移,相对于目标或焦点调整视角位置。
TargetX 双端
csharp
public float TargetX { get; set; }固定位置模式下的目标 X 坐标。
TargetY 双端
csharp
public float TargetY { get; set; }固定位置模式下的目标 Y 坐标。
TargetZOffset 双端
csharp
public float TargetZOffset { get; set; }目标 Z 轴偏移。固定模式决定目标点 Z 坐标;跟随模式决定相对目标单位的 Z 偏移。
PositionMode 双端
csharp
public CameraPositionMode PositionMode { get; set; }相机位置计算模式(焦点、目标对象等)。默认 FocalPoint。
Rotation 双端
csharp
public CameraRotation Rotation { get; set; }相机在 3D 空间中的旋转角度。默认 (0, -70, 0)。
RotationOrder 双端
csharp
public CameraRotationOrder RotationOrder { get; set; }旋转应用顺序,影响多轴旋转时的最终朝向。默认 RollPitchYaw。
FocalLength 双端
csharp
public ValueRange<float> FocalLength { get; set; }焦距范围,用于透视投影的缩放效果。默认 1000~1600。
FieldOfView 双端
csharp
public Angle FieldOfView { get; set; }视场角(度),越大视野越广。默认 45°。
FieldOfViewFor2K 双端
csharp
public Angle FieldOfViewFor2K { get; set; }2K 分辨率下的视场角,用于多分辨率适配。默认 25°。
NearClipPlane 双端
csharp
public float NearClipPlane { get; set; }近裁剪平面距离,小于此距离的物体不渲染。默认 1。
FarClipPlane 双端
csharp
public float FarClipPlane { get; set; }远裁剪平面距离,大于此距离的物体不渲染。默认 100000。
Orthographic 双端
csharp
public bool Orthographic { get; set; }是否使用正交投影(无透视变形)。
UseSpringArm 双端
csharp
public bool UseSpringArm { get; set; }是否启用弹簧臂,使相机移动更平滑。
SceneBounds 双端
csharp
public Thickness? SceneBounds { get; set; }场景边界限制,相机焦点不能移出此范围。为 null 则不限制。
DisplayDebugInfo 双端
csharp
public bool DisplayDebugInfo { get; set; }是否显示调试信息。
FollowMainUnitByDefault 双端
csharp
public bool FollowMainUnitByDefault { get; set; }是否默认跟随本地玩家主单位。
FollowMoveTime 双端
csharp
public TimeSpan FollowMoveTime { get; set; }跟随目标时的移动平滑时间,用于过渡动画。默认 0(无平滑)。
FollowMoveRateRange 双端
csharp
public ValueRange<GameRate> FollowMoveRateRange { get; set; }跟随时的移动速率范围。默认 2000~4000。
FreeTargetChangeThreshold 双端
csharp
public float FreeTargetChangeThreshold { get; set; }自由控制模式下,光标/触控靠近视口边缘多少像素时触发焦点移动。默认 15。
GestureMoveMaxSpeed 双端
csharp
public float GestureMoveMaxSpeed { get; set; }手势拖拽移动相机的最大速度。默认 5000。
GestureMoveMultiplier 双端
csharp
public float GestureMoveMultiplier { get; set; }手势拖拽移动相机的速度倍率。默认 1。
GestureScaleMaxSpeed 双端
csharp
public float GestureScaleMaxSpeed { get; set; }手势缩放相机的最大速度。默认 5000。
GestureScaleMultiplier 双端
csharp
public float GestureScaleMultiplier { get; set; }手势缩放相机的速度倍率。默认 1。
ZoomFocalLengthRate 双端
csharp
public float ZoomFocalLengthRate { get; set; }滚轮/手势缩放时,每步焦距变化量。默认 750。
ZoomRotationRange 双端
csharp
public StructRange<CameraRotation> ZoomRotationRange { get; set; }缩放时相机旋转角度的范围。默认 (0,-30,0)~(0,-70,0)。
ZoomRotationRate 双端
csharp
public CameraRotation ZoomRotationRate { get; set; }缩放时相机旋转的目标角度。默认 (0, -70, 0)。
ZoomStageCount 双端
csharp
public uint ZoomStageCount { get; set; }滚轮缩放的档位数量,0 表示禁用缩放。默认 4。
CameraShakeDirection 仅客户端
命名空间 GameUI.CameraSystem.Enum
csharp
public enum CameraShakeDirection枚举值
NoneXYZXYXZYZXYZ
CameraTransform 仅客户端
命名空间 GameUI.CameraSystem.Struct
csharp
public readonly struct CameraTransform属性
Position 仅客户端
csharp
public Vector3 Position { get; init; }Rotation 仅客户端
csharp
public CameraRotation Rotation { get; init; }Gets the rotation of the camera in 3D space. Euler angles in degrees.
FocalLength 仅客户端
csharp
public float FocalLength { get; init; }