You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.1 KiB
47 lines
1.1 KiB
12 months ago
|
using Godot;
|
||
|
using System;
|
||
|
|
||
|
public partial class ActionCamera : Node3D
|
||
|
{
|
||
|
[Export]
|
||
|
public float Speed { get; set; } = 4;
|
||
|
private Vector3 _targetRotation = Vector3.Zero;
|
||
|
// Called when the node enters the scene tree for the first time.
|
||
|
public override void _Ready()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||
|
public override void _Process(double delta)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public override void _PhysicsProcess(double delta)
|
||
|
{
|
||
|
if (Input.IsActionPressed("camera_up"))
|
||
|
{
|
||
|
_targetRotation.X -= Speed*(float)delta;
|
||
|
}
|
||
|
if (Input.IsActionPressed("camera_down"))
|
||
|
{
|
||
|
_targetRotation.X += Speed*(float)delta;
|
||
|
}
|
||
|
if (Input.IsActionPressed("camera_left"))
|
||
|
{
|
||
11 months ago
|
_targetRotation.Y += Speed*(float)delta;
|
||
12 months ago
|
}
|
||
|
if (Input.IsActionPressed("camera_right"))
|
||
|
{
|
||
11 months ago
|
_targetRotation.Y -= Speed*(float)delta;
|
||
12 months ago
|
}
|
||
|
if (_targetRotation.X>30*Mathf.Pi/180)
|
||
|
{
|
||
|
_targetRotation.X = 30*Mathf.Pi/180;
|
||
|
}
|
||
|
if (_targetRotation.X<-30*Mathf.Pi/180){
|
||
|
_targetRotation.X = -30*Mathf.Pi/180;
|
||
|
}
|
||
|
this.Rotation = this.Rotation.Lerp(_targetRotation,Speed*(float)delta) ;
|
||
|
}
|
||
|
}
|