NavMeshAgent 接口說明

Variables


acceleration

類型:float。
代理的最大加速度。代理并不是精確的按照被navigation system計(jì)算出來的直線片段行走,而是使用路點(diǎn)作為中間目的地。這個(gè)值是代理在向下一個(gè)路點(diǎn)移動(dòng)時(shí)的最大加速的值。(跟現(xiàn)實(shí)世界一樣,代理按照這個(gè)加速度增加自己的速度,直到最大速度)。

angularSpeed

類型:float。

代理的最高旋轉(zhuǎn)速度。這是當(dāng)代理繞著路點(diǎn)定義的"corner"旋轉(zhuǎn)時(shí)的最大速率。真正旋轉(zhuǎn)時(shí)的弧度(circle)也受到代理的速度和最大加速度影響。

areaMask

類型:int

指定哪一個(gè)NavMesh區(qū)域(areas)是可用的。改變areaMask將會(huì)使路徑陳舊。

這是一個(gè)位域。

(這個(gè)值可以在游戲中被修改,立即生效)

autoBraking

類型:bool

代理是否自動(dòng)停止從而避免越過目的地?

如果代理需要在目的點(diǎn)附近著陸(land close),那么他必須及時(shí)停止避免越過或者無限的圍著目標(biāo)區(qū)域按軌道運(yùn)行。如果這個(gè)屬性被設(shè)置為true,當(dāng)代理到達(dá)目的地附近時(shí)就會(huì)自動(dòng)停止。

autoRepath

類型:bool

如果當(dāng)前的路徑變成無效時(shí),代理是否重新獲得一個(gè)路徑?

當(dāng)代理到達(dá)一個(gè)路徑片段的結(jié)尾和路徑陳舊時(shí),一個(gè)新的路徑需要被計(jì)算。

(這個(gè)值還不知道到底有什么效果,在游戲中,當(dāng)areaMask改變,路徑陳舊時(shí),路徑會(huì)被重新計(jì)算,立即發(fā)生)

autoTraverseOffMeshLink

類型:bool

Off-mesh links被用來鏈接不連續(xù)的NavMesh區(qū)域。通常情況下,一個(gè)角色應(yīng)該可以自動(dòng)的通過或穿過一個(gè)環(huán)節(jié)(link),而這時(shí)這個(gè)屬性被設(shè)置為true。然而他也可以被設(shè)置為false當(dāng)需要一些特定的控制的時(shí)候。

avoidancePriority

類型:int

躲避優(yōu)先級(jí)

當(dāng)代理是一個(gè)障礙物時(shí),級(jí)別低的代理被忽視。有效的范圍是從0到99:最終要=0,最不重要=99,默認(rèn)=50

(注意:以下都是基于沒有剛體的情況下
1、如果障礙物是不會(huì)移動(dòng)的,那么請(qǐng)?jiān)赽ake時(shí)候連同地形一起bake,這樣就會(huì)生成較好的navmesh
2、如果障礙物需要移動(dòng),那么請(qǐng)?jiān)谡系K物上添加agent,并設(shè)置其大小,然后設(shè)置avoidancePriority,低優(yōu)先級(jí)的將被高優(yōu)先級(jí)的agent強(qiáng)行推開)

baseOffset

類型:float

相對(duì)于所擁有的游戲?qū)ο蟮拇怪蔽灰啤?/p>

(正值則代理在游戲?qū)ο蟮南路?,?fù)值在上方)

currentOffMeshLinkData

類型:OffMeshLinkData

當(dāng)前的OffMeshLinkData.。(結(jié)構(gòu)體)

如果代理沒有在一個(gè)OffMeshLink上,OffMeshLinkData被標(biāo)記為無效。

desiredVelocity

類型:Vector3

期望速度 只讀。

Destination

類型:Vector3

設(shè)置或者獲得代理的目的點(diǎn),世界坐標(biāo)系。

獲得:

返回設(shè)置給代理的目的點(diǎn)。

?如果一個(gè)目的點(diǎn)被設(shè)置了并且尋路過程還沒結(jié)束,將會(huì)返回一個(gè)有效的,離預(yù)先設(shè)置的位置(position)最近的navmesh位置。

?如果代理沒有路徑或被請(qǐng)求的路徑,返回代理自己的位置。

?如果代理沒有映射到navmesh,返回infinity。

設(shè)置:

請(qǐng)求代理移動(dòng)到離目的點(diǎn)最近的有效的位置。

? 路徑結(jié)果可能是無效的直到幾幀之后。使用pathPending獲取結(jié)果。

? 如果找不到一個(gè)有效的最近的位置,將不會(huì)請(qǐng)求路徑。使用SetDestination并且檢查返回值,如果你需要明確的掌握這些情況。

using UnityEngine;
[RequireComponent(typeof(NavMeshAgent))]
public class FollowTarget : MonoBehaviour
{
    public Transform target; Vector3 destination; NavMeshAgent agent;
    void Start()
    {
        // Cache agent component and destination
        agent = GetComponent<NavMeshAgent>();
        destination = agent.destination;
    }
    void Update()
    {
        // Update destination if the target moves one unit
        if (Vector3.Distance(destination, target.position) > 1.0f)
        {
            destination = target.position;
            agent.destination = destination;
        }
    }
}

hasPath

類型:bool

當(dāng)前代理是否有路徑?(只讀)

height

類型:float

代理在障礙物下可以通過的高度。

isOnNavMesh

類型:bool

代理最近一定會(huì)在navmesh上嗎?(只讀)

這個(gè)屬性將被設(shè)置為true,如果代理因?yàn)槟承┰虿荒芙壎ǖ絥avmesh。

(這里文檔說反了,這個(gè)屬性值應(yīng)該是false)

isOnOffMeshLink

類型:bool

代理當(dāng)前的位置在一個(gè)OffMeshLink上嗎?(只讀)

當(dāng)穿過link時(shí)客戶的運(yùn)動(dòng)需要被知道而autoTraverseOffMeshLink是false的時(shí)候這個(gè)值很有用。

isPathStale

類型:bool

當(dāng)前路徑是否陳舊(只讀)

當(dāng)為true,路徑可能不再有效或者最優(yōu)。這個(gè)標(biāo)簽會(huì)被設(shè)置,如果:areaMask有任意的改變,任意一個(gè)OffMeshLink設(shè)為可用或不可用,或者NavMeshAreas的消耗(costs)被改變。

nextOffMeshLinkData

類型:OffMeshLinkData

當(dāng)前路徑的下一個(gè)OffMeshLinkData。

如果當(dāng)前路徑不包含一個(gè)OffMeshLink,OffMeshLinkData被標(biāo)記為無效的

nextPosition

類型:Vector3

獲取或者設(shè)置網(wǎng)格代理的仿真位置(position)。

位置向量使用世界坐標(biāo)系的坐標(biāo)和單位。

nextPosition是與Transform.position相結(jié)合的。在默認(rèn)情況下,當(dāng)腳本函數(shù)Update被調(diào)用的時(shí)候,網(wǎng)格代理的Transform position將會(huì)與內(nèi)部的仿真位置相匹配。這種結(jié)合可以通過設(shè)置updatePosition打開或者關(guān)閉。

當(dāng)updatePosition為true,Transfom.position反映為仿真位置,為false的時(shí)候Transfom.position和網(wǎng)格代理是不同步的并且一般情況下你將會(huì)看到他們兩個(gè)是不同的。當(dāng)updatePosition被設(shè)置回為打開,Transform,position將會(huì)立即移動(dòng)并匹配為nextPosition。

通過設(shè)置nextPosition你可以立即控制內(nèi)部代理位置(position)應(yīng)該在哪。代理會(huì)被移動(dòng)到那個(gè)位置,在navmesh的范圍內(nèi)。只有當(dāng)位置是連續(xù)的更新和計(jì)算的時(shí)候才是有用的。

(從名字來看,下一個(gè)位置,好像應(yīng)該是下一步應(yīng)該走的位置,然而文檔看起來又沒有這么解釋,然而好像又可以這么理解。如果在update中打印nextPosition和代理當(dāng)前的位置,會(huì)發(fā)現(xiàn)他們是一樣的。如果將updatePosition設(shè)為false在打印,會(huì)發(fā)現(xiàn)nextPosition在持續(xù)變化,最終會(huì)非常接近目標(biāo)點(diǎn),而代理卻一動(dòng)不動(dòng),位置保持不變。如果設(shè)置nextPosition代理會(huì)理解移動(dòng)到設(shè)置的位置。)

using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
    void Start()
    {
        // Update the transform position explicitly in the OnAnimatorMove callback
        GetComponent<NavMeshAgent>().updatePosition = false;
    }
    void OnAnimatorMove()
    {
        transform.position = GetComponent<NavMeshAgent>().nextPosition;
    }
}

此外他可以被用來立即改變代理的位置——特別是代理的移動(dòng)是通過其他什么來控制的時(shí)候。

using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
    public bool agentIsControlledByOther;
    void Update()
    {
        var agent = GetComponent<NavMeshAgent>();
        agent.updatePosition = !agentIsControlledByOther;
        if (agentIsControlledByOther)
        {
            GetComponent<NavMeshAgent>().nextPosition = transform.position;
        }
    }
}

obstacleAvoidanceType

類型:

Path

類型:NavMeshPath

設(shè)置或者獲取當(dāng)前路徑。

對(duì)GUI,調(diào)試,以及其他想要獲得經(jīng)過導(dǎo)航系統(tǒng)計(jì)算的路徑的點(diǎn)的目的,這個(gè)屬性會(huì)非常有用。此外,通常也可以給代理設(shè)置一個(gè)由用戶代碼創(chuàng)建的路徑讓代理去走。例如,當(dāng)為警衛(wèi)設(shè)置巡邏路線的的時(shí)候與其兩點(diǎn)之間不如設(shè)置當(dāng)前路徑。

pathPending

類型:bool

進(jìn)程中的路徑正在被計(jì)算但是還沒轉(zhuǎn)備好?(只讀)

pathStatus

類型:NavMeshPathStatus

當(dāng)前路徑的狀態(tài)(完成,局部或無效)

radius

類型:float

代理的避讓半徑。

這是代理的“私人空間”,當(dāng)代理作為障礙物時(shí),其他代理不能從中穿過。

remainingDistance

類型:float

在當(dāng)前路徑中,代理的位置和目標(biāo)位置的距離(只讀)

如果剩下的距離是未知的那么這個(gè)值是infinity

speed

類型:float

在一條路徑上行走時(shí)的最大移動(dòng)速率。

很典型的,沿路徑行走時(shí),代理需要加速或減速。速率受限于路段的長(zhǎng)度和加速的時(shí)間和剎車(brake),但是速率不會(huì)超過這個(gè)屬性被設(shè)置的值即使在一段又長(zhǎng)又直的路徑上。

steeringTarget

類型:Vector3

獲得路徑上的當(dāng)前轉(zhuǎn)向點(diǎn)。(只讀)

他是沿路的下一個(gè)轉(zhuǎn)角或?qū)ぢ返慕K點(diǎn)。

除非代理在一個(gè)OffMeshLink上移動(dòng),否則在代理和steeringTarget之間是筆直的路徑。

當(dāng)接近一個(gè)OffMeshLink時(shí),他的值是代理將要進(jìn)入link的位置。當(dāng)代理環(huán)游一個(gè)OffMeshLink時(shí),他的值是代理將要離開link的位置。

stoppingDistance

類型:float

當(dāng)距離目標(biāo)位置這個(gè)距離的時(shí)候停止。

幾乎不可能很精確的著陸到目標(biāo)點(diǎn),所以這個(gè)屬性被用來設(shè)置一個(gè)可接受的半徑,在這個(gè)半徑內(nèi)代理會(huì)停止。一個(gè)較大的stoppingDistance可以使代理在路徑末端有更多的策略空間,以避免突然的停止,轉(zhuǎn)彎或其他不正常的AI行為。

updatePosition

類型:bool

獲取或設(shè)置transform position是否與模擬的代理位置同步。默認(rèn)為true。

當(dāng)為true:改變transform position將影響模擬位置,反之亦然。

當(dāng)為false:模擬位置將不再被用于transform position,反之亦然。

如果想通過腳本直接控制transform position,設(shè)置updatePosition為false。

當(dāng)為真,transform將被移動(dòng)到模擬位置。這種情況下,代理將被迫停留在navmesh表面。

updateRotation

類型:bool

代理是否更新方向。

velocity

類型:Vector3

獲取NavMeshAgent組件的當(dāng)前速度,或者手動(dòng)為代理設(shè)置一個(gè)速度。

讀取這個(gè)變量將會(huì)返回基于群體仿真的代理的當(dāng)前速度速度。

設(shè)置這個(gè)變量將會(huì)重寫仿真(simulation),并且命令代理立即使用指定的速度移動(dòng)。當(dāng)代理使用速度來控制時(shí),他的運(yùn)動(dòng)仍然受限于NavMesh。

Setting the velocity directly can be used for implementing player characters which are moving on NavMesh and affecting the rest of the simulated crowd。此外,設(shè)置優(yōu)先級(jí)太高(值越小優(yōu)先級(jí)越高),會(huì)使其他模擬代理更早的避開受控的代理。

當(dāng)手動(dòng)控制代理的時(shí)候我們建議每一幀都設(shè)置速度。如果釋放控制權(quán)給模擬器,設(shè)置速度為0。如果速度被設(shè)置為某個(gè)值,然后停止了更新,模擬器將會(huì)撿起控制權(quán)然后緩慢的減速。

注意讀取速度將會(huì)返回來自模擬器的值。如果你設(shè)置了一個(gè)值,下一幀才會(huì)生效。因?yàn)榉祷氐乃俣葋碜阅M器,他可能跟你設(shè)置的不一樣。

Units/s,世界坐標(biāo)系。


Public Functions

ActivateCurrentOffMeshLink

類型:void ActivateCurrentOffMeshLink(bool activated);

參數(shù):

activated link是否被激活?

使當(dāng)前的off-mesh link可用或者不可用。

這個(gè)函數(shù)激活或撤銷代理當(dāng)前正在等待的off-mesh link。這被用來準(zhǔn)許通過一個(gè)新開發(fā)的游戲世界的區(qū)域或者模擬創(chuàng)造或移除一個(gè)通往一個(gè)區(qū)域的障礙。

using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
    private NavMeshAgent agent;
    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
    }
    void OpenDiscoveredArea(Hashtable areasDiscovered)
    {
        if (agent.isOnOffMeshLink)
            if (areasDiscovered.ContainsKey(agent.currentOffMeshLinkData.offMeshLink.name))
                agent.ActivateCurrentOffMeshLink(true);
    }
}

CalculatePath

類型:bool CalculatePath(Vector3 targetPosition, NavMeshPath path)

參數(shù):

targetPositon 路徑要求的重點(diǎn)位置。

path 作為結(jié)果的路徑

返回true如果路徑被找到。

計(jì)算一段路徑直到指定的點(diǎn)然后保存路徑結(jié)果。

這個(gè)函數(shù)被用來提前計(jì)劃一段路徑以避免在游戲中當(dāng)需要尋路時(shí)發(fā)生延遲。另外一個(gè)用處是在代理移動(dòng)之前檢查目標(biāo)位置是否可達(dá)。

using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
    public Transform target;
    private NavMeshAgent agent;
    void Start()
    {
        agent = GetComponent<NavMeshAgent>(); NavMeshPath path = new NavMeshPath();
        agent.CalculatePath(target.position, path);
        if (path.status == NavMeshPathStatus.PathPartial)
        {
        }
    }
}

CompleteOffMeshLink

類型:void CompleteOffMeshLink()

結(jié)束當(dāng)前OffMeshLink上的移動(dòng)。

代理會(huì)移動(dòng)到離當(dāng)前OffMeshLink另一端最近的有效的位置。

如果代理不在一個(gè)OffMeshLink上,CompleteOffMeshLink()沒有任何效果。

當(dāng)autoTraverseOffMeshLink不可用時(shí),代理會(huì)暫停在一個(gè)off-mesh link上直到這個(gè)函數(shù)被調(diào)用。當(dāng)用戶自己控制通過OffMeshLinks時(shí)會(huì)用到它。

using UnityEngine;
using System.Collections;
public enum OffMeshLinkMoveMethod
{
    Teleport,
    NormalSpeed,
    Parabola
}
[RequireComponent(typeof(NavMeshAgent))]
public class AgentLinkMover : MonoBehaviour
{
    public OffMeshLinkMoveMethod method = OffMeshLinkMoveMethod.Parabola;
    IEnumerator Start()
    {
        NavMeshAgent agent = GetComponent<NavMeshAgent>();
        agent.autoTraverseOffMeshLink = false;
        while (true)
        {
            if (agent.isOnOffMeshLink)
            {
                if (method == OffMeshLinkMoveMethod.NormalSpeed)
                    yield return StartCoroutine(NormalSpeed(agent));
                else if (method == OffMeshLinkMoveMethod.Parabola)
                    yield return StartCoroutine(Parabola(agent, 2.0f, 0.5f));
                agent.CompleteOffMeshLink();
            }
            yield return null;
        }
    }
    IEnumerator NormalSpeed(NavMeshAgent agent)
    {
        OffMeshLinkData data = agent.currentOffMeshLinkData; Vector3 endPos = data.endPos Vector3.up* agent.baseOffset;
        while (agent.transform.position != endPos)
        {
            agent.transform.position = Vector3.MoveTowards(agent.transform.position, endPos, agent.speed * Time.deltaTime);
            yield return null;
        }
    }
    IEnumerator Parabola(NavMeshAgent agent, float height, float duration)
    {
        OffMeshLinkData data = agent.currentOffMeshLinkData; Vector3 startPos = agent.transform.position; Vector3 endPos = data.endPos Vector3.up* agent.baseOffset;
        float normalizedTime = 0.0f;
        while (normalizedTime < 1.0f)
        {
            float yOffset = height * 4.0f * (normalizedTime - normalizedTime * normalizedTime);
            agent.transform.position = Vector3.Lerp(startPos, endPos, normalizedTime)   yOffset* Vector3.up;
            normalizedTime = Time.deltaTime / duration;
            yield return null;
        }
    }
}

FindClosestEdge

類型:bool FindClosestEdge(out NavMeshHit hit);

參數(shù):

hit 掌握定位結(jié)果的性能。

返回:

True,如果最近的邊緣被找到。

定位最近的navmesh邊緣。

返回的NavMeshHit 包含最近的邊緣上的最近的點(diǎn)的位置和細(xì)節(jié)。

using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
    private NavMeshAgent agent;
    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
    }
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
            TakeCover();
    }
    void TakeCover()
    {
        NavMeshHit hit;
        if (agent.FindClosestEdge(out hit))
            agent.SetDestination(hit.position);
    }
}

GetAreaCost

類型:float GetAreaCost(int areaIndex)

參數(shù):

areaIndex 區(qū)域索引

返回:

指定的區(qū)域索引當(dāng)前的消耗。

當(dāng)通過特定區(qū)域的時(shí)候獲得消耗以方便路徑計(jì)算。

路徑的消耗就是當(dāng)涉及計(jì)算的時(shí)候的“困難”數(shù)量--最短的路徑未必就是最優(yōu)選如果需要穿過困難地形,比如泥潭、雪地等。在Unity中區(qū)域的不同類型用navmesh areas來表示。注意路徑消耗只適用于選擇路徑,在代理沿路行走時(shí)并不會(huì)自動(dòng)的改變其移動(dòng)速度。確實(shí),路徑消耗能夠指出其他因素,例如危險(xiǎn)或能見度。

Move

類型:void Move(Vector3 offset)

參數(shù):

offset 相對(duì)的移動(dòng)向量。

申請(qǐng)一個(gè)相對(duì)當(dāng)前位置的移動(dòng)。

如果代理有一個(gè)路徑他將被校正。

Raycast

類型:bool Raycast(Vector3 targetPosition, out NavMeshHit hit)

參數(shù):

targetPosition 將要移動(dòng)到的終點(diǎn)

hit 被射線發(fā)現(xiàn)的障礙物的屬性(如果有)

返回:

True如果代理和目標(biāo)位置之間有障礙物,否則false。

在不移動(dòng)代理的前提下,在navmesh中向著目標(biāo)位置追蹤一條筆直的路徑。如果沿路遇到一個(gè)障礙物,那么將返回true并且障礙物的位置信息和其他細(xì)節(jié)將會(huì)保存在hit參數(shù)中。這個(gè)函數(shù)可以用來檢查角色是否一眼就能看到目標(biāo)。這個(gè)函數(shù)和Physics.Raycast非常接近

using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
    public Transform target;
    private NavMeshAgent agent;
    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
    }
    void Update()
    {
        NavMeshHit hit;
        if (!agent.Raycast(target.position, out hit))
        {
        }
    }
}

ResetPath

類型:void ResetPath()

清除當(dāng)前路徑。

路徑清除之后代理不會(huì)尋找一個(gè)新的路徑直到SetDestination 被調(diào)用。

注意當(dāng)調(diào)用這個(gè)函數(shù)時(shí)代理在OffMeshLink上,則link會(huì)立即被完成。

Resume()

類型:void Resume()

當(dāng)一段暫停之后重新開始沿著當(dāng)前路徑移動(dòng)。

SamplePathPosition

類型:bool SamplePathPosition(int areaMask, float maxDistance, out NavMeshHit hit)

參數(shù):

areaMask 一個(gè)位域標(biāo)志,指定了尋路是哪個(gè)區(qū)域可以通過。

maxDistance 超出這段距離則終止搜索路徑。

hit 保存結(jié)果地理位置的屬性。

返回:

True如果在maxDistance之前結(jié)束,否則false。

沿著當(dāng)前路徑取樣一個(gè)位置。

這個(gè)函數(shù)朝著當(dāng)前路徑向前看一段指定的距離。那個(gè)位置的網(wǎng)格的細(xì)節(jié)將會(huì)返回到一個(gè)NavMeshHit對(duì)象中。這個(gè)函數(shù)可以被用來,例如,在角色即將到達(dá)之前檢查地表類型--一個(gè)角色想要通過有水的地方的時(shí)候可能要舉起槍仰起頭。

using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
    public Transform target;
    public NavMesh mesh;
    private NavMeshAgent agent;
    private int waterMask;
    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
        waterMask = 1 << NavMesh.GetAreaFromName("Water");
        agent.SetDestination(target.position);
    }
    void Update()
    {
        NavMeshHit hit;
        // Check all areas one length unit ahead.
        if (!agent.SamplePathPosition(NavMesh.AllAreas, 1.0F, out hit))
            if ((hit.mask & waterMask) != 0)
            {
                // Water detected along the path...
            }
    }
}

SetAreaCost

類型:void SetAreaCost(int areaIndex, float areaCost)

參數(shù):

areaIndex 區(qū)域索引

areaCost 指定的區(qū)域的新的消耗

設(shè)置穿過某種類型的區(qū)域時(shí)的消耗。

如果你啟用或廢除代理,那么消耗將會(huì)被重置為默認(rèn)值。

SetDestination

類型:bool SetDestination(Vector3 target)

參數(shù):

target 導(dǎo)航到的目標(biāo)點(diǎn)。

返回:

True如果目標(biāo)地址請(qǐng)求成功,否則false。

設(shè)置或更新目的地,因此可以出發(fā)一個(gè)新路徑的計(jì)算。

注意新路徑可能不會(huì)立即生效直到幾幀之后。當(dāng)路徑計(jì)算完成之后,pathPending將會(huì)是true。如果一段有效的路徑變?yōu)閍vailable 代理將重新開始移動(dòng)。

using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
    private NavMeshAgent agent;
    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
    }
    void Update()
    {
        RaycastHit hit;
        if (Input.GetMouseButtonDown(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            if (Physics.Raycast(ray, out hit))
                agent.SetDestination(hit.point);
        }
    }
}

SetPath

類型:bool SetPath(NavMeshPath path)

參數(shù):

path 新的尋路路徑

返回:

true如果指定路徑成功

指定一段新路徑給代理。

如果指定路徑成功代理會(huì)重新朝著新目標(biāo)移動(dòng)。如果指定失敗路徑被清空。

Stop

類型:void Stop()

停止代理沿著當(dāng)前路徑移動(dòng)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容