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 = 4.0f; public float turnSpeedPitch = 0.3f; public float turnSpeedYaw = 0.5f; public float pitchClamp = 45.0f; public ThirdPersonCamera(GameObject go) : base(go) { } protected override void awake() { AddComponent(); if(!GetComponent()) { AddComponent(); } GetComponent().SetMainCamera(); if (!GetComponent()) { AddComponent(); } GetComponent().ArmLength = armLength; } protected override void update() { if (Input.GetMouseButton(Input.MouseCode.RightButton)) { CameraArm arm = GetComponent(); if (arm) { Vector2 vel = Input.GetMouseVelocity(); arm.Pitch -= vel.y * turnSpeedPitch * Time.DeltaTimeF; arm.Yaw += vel.x * turnSpeedYaw * Time.DeltaTimeF; if (arm.Pitch > pitchClamp) { arm.Pitch = pitchClamp; } else if (arm.Pitch < 0) { arm.Pitch = 0; } } } } } }