首先搭建好太阳系以及飞机的场景
需要用到3个脚本
1.控制飞机移动旋转
2.控制摄像机LookAt朝向飞机和差值平滑跟踪飞机
3.控制各个星球自转以及围绕太阳旋转(rotate()和RotateAround())
=============================================
1.控制飞机移动旋转的脚本
cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MovePlan : MonoBehaviour
{
// 这个脚本是用户用WASD键盘控制飞机移动
public float MoveSpeed = 0.5f;
public float RotateSpeed = 2f;
float mOUSESPEED;
void Update()
{
if (Input.GetKey(KeyCode.W))
{
this.transform.Translate(new Vector3(0, 0, 1 * MoveSpeed * Time.deltaTime));
}
if (Input.GetKey(KeyCode.S))
{
this.transform.Translate(new Vector3(0, 0, -1 * MoveSpeed * Time.deltaTime));
}
if (Input.GetKey(KeyCode.A))
{
this.transform.Translate(new Vector3(-1 * MoveSpeed * Time.deltaTime,0, 0 ));
}
if (Input.GetKey(KeyCode.D))
{
this.transform.Translate(new Vector3(1 * MoveSpeed * Time.deltaTime, 0, 0));
}
//控制物体旋转
mOUSESPEED = Input.GetAxis("Mouse X");
this.transform.Rotate(new Vector3(0, mOUSESPEED * RotateSpeed*Time.deltaTime, 0));
}
}
2.控制摄像机LookAt朝向飞机和差值平滑跟踪飞机 的脚本
cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ControlCamera : MonoBehaviour
{
// 这个脚本是用来让摄像机跟踪目标,并且一直看向目标
public Transform onetarget;//这是飞机的变换组件
public GameObject OnePoint;
public float Movespeed = 1f;
void Update()
{
this.transform.position = Vector3.Lerp(this.transform.position, OnePoint.transform.position, Movespeed * Time.deltaTime);
this.transform.LookAt(onetarget);
}
}
使用方法:
分别挂在到摄像机和飞机上