using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using SHADE; namespace SHADE_Scripting { public class ThirdPersonCamera : Script { public float armLength = 2.0f; public float turnSpeedPitch = 0.3f; public float turnSpeedYaw = 0.5f; public float pitchClamp = 45.0f; public bool inverseXControls = false; public bool inverseYControls = false; public float lowerClamp = 5.0f; protected override void awake() { AddComponent(); if (!GetComponent()) { AddComponent(); } GetComponent().SetMainCamera(); if (!GetComponent()) { AddComponent(); } } protected override void start() { GetComponent().ArmLength = armLength; } protected override void update() { CameraArm arm = GetComponent(); if (arm) { Vector2 vel = Input.GetMouseVelocity(); if(inverseYControls) arm.Pitch -= vel.y * turnSpeedPitch * Time.DeltaTimeF; else arm.Pitch += vel.y * turnSpeedPitch * Time.DeltaTimeF; if (inverseXControls) arm.Yaw -= vel.x * turnSpeedYaw * Time.DeltaTimeF; else arm.Yaw += vel.x * turnSpeedYaw * Time.DeltaTimeF; if (arm.Pitch > pitchClamp) { arm.Pitch = pitchClamp; } else if (arm.Pitch < lowerClamp) { arm.Pitch = lowerClamp; } } } } }