最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity3D游戲-鼠標點擊使角色移動避開障礙物

 更新時間:2025年08月16日 09:58:18   作者:谷宇  
在Unity的世界里,當你輕點鼠標,角色仿佛被賦予了新的使命,沿著一條無形的軌跡,向著地圖上的目標點進發(fā),每一次移動,不僅是簡單的位移,更是對未知的探索,這種交互,讓玩家與游戲世界緊密相連,仿佛自己就是那個掌控命運的魔法師,用指尖繪制出角色的冒險之路......

在Unity的世界里,當你輕點鼠標,角色仿佛被賦予了新的使命,沿著一條無形的軌跡,向著地圖上的目標點進發(fā)。每一次移動,不僅是簡單的位移,更是對未知的探索。這種交互,讓玩家與游戲世界緊密相連,仿佛自己就是那個掌控命運的魔法師,用指尖繪制出角色的冒險之路......

安裝導(dǎo)航網(wǎng)格

1.打開package Manager包管理器,找到并選擇Unity Registry。

2.在搜索框里輸入“AI”,找到AI Navigation,然后點一下“安裝”按鈕。(像我這里,因為之前已經(jīng)裝過了,所以沒有顯示“安裝”按鈕。如果你是第一次裝,就會看到一個“安裝”按鈕,點一下就能裝上了)

為角色和地圖設(shè)置和烘培導(dǎo)航網(wǎng)格

1.我們首先需要為角色添加一個導(dǎo)航組件,選中角色對象,然后在其上添加一個Nav Mesh Agent組件。

2.設(shè)置角色的碰撞框(角色身上綠色的圓柱型框框),讓其盡量去貼近我們的角色。

3.接著我們?yōu)榈匦翁砑訉?dǎo)航網(wǎng)格。選中地形Terrain,然后點擊Add Component,添加Nav Mesh Surface組件。

4.設(shè)置Default Area的屬性為Walkable(可行走的)。

5.點擊“Bake”烘培。

6.(可選)如果需要額外添加“不可行走的”障礙物。選中該障礙物對象,點擊Add Component,為其添加一個NavMeshModifier的組件。

7.(可選)勾選上Override Area,選擇Not Walkable(不可行走的)。

8.(可選)重新烘培地形。

編寫移動功能的腳本

1.在Assets文件夾下創(chuàng)建一個空文件夾,可命名為Scripts(名稱可自定),用于存放腳本。接著,在Scripts文件夾中創(chuàng)建C#腳本。

2.實現(xiàn)鼠標點擊的移動功能

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public class PlayerController : MonoBehaviour
{
//獲取到導(dǎo)航網(wǎng)格的代理
private NavMeshAgent agent;
//動畫器
private Animator anime;
//聲明射線檢測結(jié)果的變量
RaycastHit hitByScreen;
void Start()
{
agent = transform.GetComponent();
anime = transform.GetComponent();
hitByScreen = new RaycastHit();
}

void Update()
{
//當鼠標左鍵按下時觸發(fā)。0代表左鍵,1代表右鍵
if (Input.GetMouseButtonDown(0))
{
//創(chuàng)建一條從鼠標在屏幕上的位置射出到接觸到場景物體的射線
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//判斷射線是否碰到場景的物體
if (Physics.Raycast(ray, out hitByScreen))
{
//判斷射線碰撞到的是否為障礙物(這里的6就是我們的圖層編號,第6是障礙物圖層)
if (hitByScreen.collider.gameObject.layer == 6)
{
//獲取到碰撞到的障礙物的位置,然后把位置加上大小,就可以獲取到障礙物邊緣的坐標點(也就是障礙物前面的地面上的點)
hitByScreen.point = hitByScreen.collider.gameObject.transform.position + hitByScreen.collider.gameObject.transform.localScale;
//把這個點設(shè)置為目的地,角色就會在障礙物前面停下
agent.SetDestination(hitByScreen.point);
}
else
{
//把射線碰到物體的點設(shè)置為目的地點,并且角色會向目的地移動
agent.SetDestination(hitByScreen.point);
}
//角色開啟跑步動畫
anime.SetBool("Run", true);
}
}

//如果角色到達指定地點就停止跑步動畫
if (hitByScreen.point != null && transform.position.x == hitByScreen.point.x && transform.position.z == hitByScreen.point.z) {
//角色停止跑步動畫
anime.SetBool("Run", false);
}
}
}

測試和運行

經(jīng)過對案例的運行測試,成功實現(xiàn)在“無障礙物”地圖上點擊鼠標左鍵,角色朝鼠標位置移動。在“有障礙物”地圖上點擊障礙物,角色成功移動到障礙物前停下,并且停止跑步動畫。

到此這篇關(guān)于Unity3D游戲-鼠標點擊使角色移動避開障礙物的文章就介紹到這了,更多相關(guān)Unity3D游戲-鼠標使角色移動內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#基于Linq和反射實現(xiàn)數(shù)據(jù)持久化框架Xml4DB詳解

    C#基于Linq和反射實現(xiàn)數(shù)據(jù)持久化框架Xml4DB詳解

    在本篇文章里小編給大家整理的是關(guān)于C#基于Linq和反射實現(xiàn)數(shù)據(jù)持久化框架Xml4DB相關(guān)知識點,有需要的朋友們學(xué)習(xí)下。
    2019-08-08
  • 使用C#實現(xiàn)數(shù)據(jù)自動化寫入Excel文件

    使用C#實現(xiàn)數(shù)據(jù)自動化寫入Excel文件

    在現(xiàn)代數(shù)據(jù)驅(qū)動的世界中,Excel文件作為一種通用的數(shù)據(jù)存儲和交換格式,在企業(yè)運營和日常工作中扮演著舉足輕重的作用,本文將深入探討如何利用C#實現(xiàn)數(shù)據(jù)的程序化寫入Excel文件,需要的可以了解下
    2025-11-11
  • C#中結(jié)構(gòu)體和字節(jié)數(shù)組轉(zhuǎn)換實現(xiàn)

    C#中結(jié)構(gòu)體和字節(jié)數(shù)組轉(zhuǎn)換實現(xiàn)

    這篇文章主要介紹了C#中結(jié)構(gòu)體和字節(jié)數(shù)組轉(zhuǎn)換實現(xiàn),本文直接給出了字節(jié)數(shù)組與結(jié)構(gòu)體的轉(zhuǎn)換代碼,代碼中包含詳細注釋,需要的朋友可以參考下
    2015-06-06
  • 深入C# winform清除由GDI繪制出來的所有線條或圖形的解決方法

    深入C# winform清除由GDI繪制出來的所有線條或圖形的解決方法

    本篇文章是對在C#中使用winform清除由GDI繪制出來的所有線條或圖形的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • Asp.Net中MVC緩存詳解

    Asp.Net中MVC緩存詳解

    這篇文章主要介紹了Asp.Net中MVC緩存的種類區(qū)別等內(nèi)容,一下來學(xué)習(xí)下。
    2017-12-12
  • C# Onnx實現(xiàn)特征匹配DeDoDe檢測

    C# Onnx實現(xiàn)特征匹配DeDoDe檢測

    這篇文章主要為大家詳細介紹了C# Onnx如何實現(xiàn)特征匹配DeDoDe檢測,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • C#實現(xiàn)Excel表數(shù)據(jù)導(dǎo)入Sql Server數(shù)據(jù)庫中的方法

    C#實現(xiàn)Excel表數(shù)據(jù)導(dǎo)入Sql Server數(shù)據(jù)庫中的方法

    這篇文章主要介紹了C#實現(xiàn)Excel表數(shù)據(jù)導(dǎo)入Sql Server數(shù)據(jù)庫中的方法,結(jié)合實例形式詳細分析了C#讀取Excel表數(shù)據(jù)及導(dǎo)入Sql Server數(shù)據(jù)庫的具體操作步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • C#并發(fā)編程入門教程之概述

    C#并發(fā)編程入門教程之概述

    這篇文章主要給大家介紹了關(guān)于C#并發(fā)編程之概述的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • C#如何調(diào)用MFC 窗口 DLL

    C#如何調(diào)用MFC 窗口 DLL

    這篇文章主要介紹了C#如何調(diào)用MFC 窗口 DLL,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • C#調(diào)用DeepSeek?API的兩種實現(xiàn)方案

    C#調(diào)用DeepSeek?API的兩種實現(xiàn)方案

    DeepSeek(深度求索)?最近可謂火爆的一塌糊涂,具體的介紹這里不再贅述,您可以各種搜索其信息,即使您不搜索,只要您拿起手機,各種關(guān)于?DeepSeek?的新聞、資訊也會撲面而來的推送到您面前,本文給大家介紹了C#調(diào)用DeepSeek?API的兩種實現(xiàn)方案,需要的朋友可以參考下
    2025-02-02

最新評論

邯郸市| 敦化市| 桑植县| 买车| 石门县| 克山县| 周口市| 正蓝旗| 洛浦县| 汕尾市| 东乌| 依兰县| 陕西省| 庆安县| 平陆县| 如皋市| 龙岩市| 清河县| 德兴市| 江源县| 荥经县| 东阳市| 元氏县| 襄垣县| 沾化县| 平潭县| 淮安市| 罗山县| 白银市| 沾益县| 南充市| 凉山| 麻阳| 武清区| 太原市| 阿拉善左旗| 台东市| 阿瓦提县| 大石桥市| 手游| 宁明县|