Skip to content

GameUI.CameraSystem ​

Camera 仅客户端 ​

命名空间 GameUI.CameraSystem

csharp
public class Camera : IGameObject<GameDataCamera>, IGameObject

表示游戏中的摄像机对象,支持跟随目标、切换视角、设置变换、震动等功能。

属性 ​

Main 仅客户端 ​

csharp
public static Camera Main { get; }
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

枚举值 ​

  • None
  • X
  • Y
  • Z
  • XY
  • XZ
  • YZ
  • XYZ

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; }