《從零開始做遊戲》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;
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章