《从零开始做游戏》Unity3D第一节-导航系统控制物体的移动-鼠标点击移动+摄像机跟随视野

点进来的都是大佬,欢迎关注点赞转发,关注浪迹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;
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章