Files
Main/Assets/Plugins/ExternalLibs/T4M/Tutorial/Scripts/FlyCam.cs
2025-01-25 04:38:09 +08:00

28 lines
1.2 KiB
C#

using UnityEngine;
using System.Collections;
public class FlyCam : MonoBehaviour {
private int currentWaypoint = 0;
public float rotateSpeed = 1.0f;
public float moveSpeed = 10.0f;
public float magnitudeMax = 10.0f;
void Update () {
if (WaypointCam.waypoints.Length>0){
Vector3 RelativeWaypointPosition = transform.InverseTransformPoint(new Vector3(WaypointCam.waypoints[currentWaypoint].position.x, WaypointCam.waypoints[currentWaypoint].position.y,WaypointCam.waypoints[currentWaypoint].position.z ) );
Vector3 targetPoint =new Vector3(WaypointCam.waypoints[currentWaypoint].position.x,WaypointCam.waypoints[currentWaypoint].position.y,WaypointCam.waypoints[currentWaypoint].position.z );
Quaternion targetrot = Quaternion.LookRotation ( targetPoint - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation, targetrot, Time.deltaTime * rotateSpeed);
var forward = transform.TransformDirection(Vector3.forward);
transform.position += forward * moveSpeed*Time.deltaTime;
if ( RelativeWaypointPosition.magnitude < magnitudeMax ) {
currentWaypoint ++;
if ( currentWaypoint >= WaypointCam.waypoints.Length ) {
currentWaypoint = 0;
}
}
}
}
}