点进来的都是大佬,欢迎关注点赞转发,关注浪迹IT圈子的搬砖人。
欢迎搜索微信公众号、B站【我在北京写代码】。
一、加入 Navigation烘焙和NavMeshAgent导航网格(界面操作请看相关视频)
二、控制物体的移动脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class NavigationController : MonoBehaviour {
//导航网格代理
public NavMeshAgent agent;
//初始化
void Start () {
}
// 每一帧更新调用
void Update () {
//鼠标右键
if (Input.GetMouseButtonDown (1)) {
//创建一条从摄像机到点击位置的射线,并赋值给ray
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
//碰撞信息
RaycastHit hit;
//如果射线发生物理碰撞(且将碰撞内容赋给hit)
if (Physics.Raycast (ray, out hit)) {
//将鼠标点击位置设置为导航系统的目的位置(移动)
agent.SetDestination(hit.point);
}
}
}
}
三、摄像机跟随物体视野移动脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraFollowController : MonoBehaviour {
//Transform组件
public Transform cube;
//Vector3向量
private Vector3 offset;
//初始化
void Start () {
//初始化一个偏移量(当前的位置(相机)减去要跟随cube的位置)
offset = transform.position - cube.position;
}
// 每一帧更新调用
void Update () {
//给当前的位置(相机)赋值=初始化的偏移量+跟随cube的位置
transform.position = offset + cube.position;
}
}