Revision Difference
Camera#560510
<cat>Code.Camera</cat>⤶
<title>Camera</title>⤶
⤶
# Introduction⤶
⤶
You can control the game camera by referencing the global clientside variable `Camera`. It is accessible and changeable anywhere in the game loop clientside. ⤶
⤶
You should put your camera code in a method called every frame - like `FrameSimulate`.⤶
⤶
## Examples⤶
⤶
### Basic Camera⤶
⤶
```⤶
/// <summary>⤶
/// Get the View as Angles used in <see cref="BuildInput"/> and <see cref="FrameSimulate"/> ⤶
/// </summary>⤶
[ClientInput] public Angles ViewAngles { get; set; }⤶
⤶
/// <summary>⤶
/// Allows to query the input and perform operations with it⤶
/// </summary>⤶
public override void BuildInput()⤶
{⤶
InputDirection = Input.AnalogMove;⤶
⤶
var look = Input.AnalogLook;⤶
⤶
var viewAngles = ViewAngles;⤶
viewAngles += look;⤶
ViewAngles = viewAngles.Normal;⤶
}⤶
⤶
/// <summary>⤶
/// Called every frame on the client⤶
/// </summary>⤶
public override void FrameSimulate( IClient cl )⤶
{⤶
base.FrameSimulate( cl );⤶
⤶
// Update rotation every frame, to keep things smooth⤶
Camera.Rotation = ViewAngles.ToRotation();⤶
Camera.Position = AimRay.Position;⤶
Camera.FieldOfView = Game.Preferences.FieldOfView;⤶
⤶
// Hide the player from the camera⤶
Camera.FirstPersonViewer = this;⤶
Camera.ZNear = 1f;⤶
Camera.ZFar = 5000.0f;⤶
}⤶
```⤶
⤶
### Orthographic Camera⤶
⤶
```⤶
public override void FrameSimulate( IClient cl )⤶
{⤶
base.FrameSimulate( cl );⤶
⤶
Camera.Main.Ortho = true; ⤶
Camera.Main.OrthoWidth = 100f;⤶
Camera.Main.OrthoHeight = 100f;⤶
}⤶
```⤶