Unity游戏(Assault空对地打击)开发(3) 摄像机跟随
摄像机丝滑跟随
首先给飞机改名为Player,方便认出。
在飞机对象下创建子对象Pos,为摄像机的目标位置,把它移动到飞机后上方。
然后创建脚本:
首先创建一个存放脚本的文件夹
然后在文件夹内新建脚本CameraFollow.cs
双击打开脚本写入:
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraFollow : MonoBehaviour { private Transform targetPos; private Transform target; public float smoothSpeed = 2.75f; private void Start() { targetPos = GameObject.Find("Player/Pos").transform; // 对象名称随机应变 target = GameObject.Find("Player").transform; // 对象名称随机应变 } private void LateUpdate() { if (target != null) { transform.position = Vector3.Lerp(transform.position, targetPos.position, smoothSpeed * Time.deltaTime); transform.LookAt(target); } } }
注释版
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraFollow : MonoBehaviour { private Transform targetPos; private Transform target; public float smoothSpeed = 2.75f; // 跟随速度 private void Start() { targetPos = GameObject.Find("Player/Pos").transform; // 目标位置 位于飞机后方 target = GameObject.Find("Player").transform; // 飞机主体 } private void LateUpdate() { if (target != null) { transform.position = Vector3.Lerp(transform.position, targetPos.position, smoothSpeed * Time.deltaTime); // 平滑移动 transform.LookAt(target); // 始终朝向飞机主体 } } }
保存后把它挂载在摄像机对象下:
运行后摄像头丝滑地移动到飞机后上方。
飞机的飞行
首先给飞机添加碰撞体和刚体,使它的运动可以符合物理学,并且不会一直往下掉。
调整碰撞体的大小:
然后在脚本目录下新建一个叫做PlayerMove的脚本:
记得挂载到飞机对象上去: