1、需要搭建一个符合的环境,搭建出八大星系(此处所需要的环境背景以及星球外表都是从网上查找下载的),我们需要将用到的资源包从文件导入项目(此处有两种方法,一是直接将资源包从文件拖入到Asset中。二是点击Asset>Import Package>Custom Package, 然后选择需要导入的资源包即可。),以供后续使用。
2、设置背景环境(点击Window>Rendering>Lighting, 选择需要的背景。),建立八大星系(在GameObject中创建球体,在导入的资源包中找到球体外表材质,分别把球体外表拖到不同的球上。),为了尽可能区分每个球体的不同,可以在Inspector中的Scale中调整球体大小。
3、编写自转公转代码并赋予球体(此处不要忘记给球体选择公转目标,公转目标可在inspector中的代码中选择或拖拽至目标栏),此处代码速度并非最终速度,到运行时可在Inspector中的代码调整速度。
3、下面导入飞机资源包,将飞机移动代码赋予飞机。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MovePlan : MonoBehaviour
{
// 这个脚本是用户用WASD键盘控制飞机移动
public float MoveSpeed = 50f;
public float RotateSpeed = 5f;
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));
}
}
4,最后开始设置摄像头的跟看。我们需要在飞机尾部创建一个空物体(这个空物体是飞机的(下方有图显示空物体的位置),也是摄像头跟随的目标(因为如果将摄像头的视线放到飞机上,它的视线是位于飞机内部,无法整体观察)),同时需要调整好空物体的位置。(在Inspector中的摄像机跟看代码中Onetarget设置为飞机,Onepoint为空物体,若是觉得摄像机跟看有抖动,可以将速度调大。)
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);
}
}
在此说明,本人所发布的文章都是课上教师所教内容,只是听从教师建议进行记录,以防后续忘记可以进行复习,对于代码这一方面不怎么熟悉(除了我所更改后的名字在后续运行中没有问题,我建的代码名字基本上都不会去更改,主要原因是有的时候把名字改了,后续运行出现问题,但是我也不知道问题在哪里),同时所发代码内容都是按部就班的照着教师所讲内容打的。