1 using System.Collections;
2 using System.Collections.Generic;
6 using System.ComponentModel;
16 [Header(
"Basic follow camera properties")]
17 [Tooltip(
"Drag and drop entire airplane group over here")]
18 public Transform airplane;
19 private float cameraDistance;
20 private float cameraHeight;
21 private float cameraMovementSpeed = 0.5f;
22 private float minHeaightFromGround;
24 private Vector3 smoothVelocity;
25 protected float originalCamraHeight;
28 #region Builtin Methods
33 cameraDistance = (float)CommonFunctions.airplanePreset[CommonFunctions.activeAirplane+
"/cameraDistance"];
34 cameraHeight = (
float)CommonFunctions.airplanePreset[CommonFunctions.activeAirplane+
"/cameraHeight"];
35 cameraMovementSpeed = 0.5f;
36 minHeaightFromGround = (float)CommonFunctions.airplanePreset[CommonFunctions.activeAirplane+
"/minHeaightFromGround"];
37 airplane = GameObject.Find(CommonFunctions.ActiveAirplane).GetComponent<Transform>();
38 originalCamraHeight = cameraHeight;
51 #region Custom Methods
59 Vector3 wantedPosition = airplane.position + (-airplane.forward*cameraDistance) + Vector3.up*cameraHeight;
61 transform.position = Vector3.SmoothDamp(transform.position, wantedPosition, ref smoothVelocity, cameraMovementSpeed);
65 if(Physics.Raycast(transform.position, Vector3.down, out hit)){
66 if(hit.distance < minHeaightFromGround && hit.transform.tag ==
"Ground"){
67 float wantedHeight = originalCamraHeight + (minHeaightFromGround - hit.distance);
68 cameraHeight = wantedHeight;