电竞比分网-中国电竞赛事及体育赛事平台

分享

Unity 尋路并顯示預行走路線

 鴻蛟家平 2019-06-10
                先看下面的演示效果:


里面主要用到Unity的自帶網(wǎng)格尋路(NavMesh)和LineRanderer,核心思想是獲取unity 的網(wǎng)格尋路的點,再把這些點賦予LineRanderer;

相關(guān)代碼如下:

using UnityEngine;
using System.Collections;


public class CubeMove : MonoBehaviour {
    NavMeshAgent _Nav;
    LineRenderer _LineRenderer;
    RaycastHit hit;
    public GameObject Cube;
    Vector3 endPoint;


// Use this for initialization
void Start () {
        _Nav = Cube.transform.GetComponent<NavMeshAgent>();
        GameObject r = Resources.Load("LineRender") as GameObject;
        GameObject r1 = GameObject.Instantiate(r);
        _LineRenderer = r1.transform.GetComponent<LineRenderer>();
        _LineRenderer.SetWidth(0.1f, 0.1f);
        _LineRenderer.SetColors(Color.blue, Color.green);
        endPoint = Cube.transform.position;
}

// Update is called once per frame
void FixedUpdate () {
        if (Input.GetMouseButtonDown(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
           
            if (Physics.Raycast(ray, out hit))
            {
                Debug.DrawLine(ray.origin, hit.point,Color.red);
               // print(hit.point);                
                _Nav.SetDestination(hit.point);        //NavMeshAgent自帶移動方法      
                print(_Nav.path.corners.Length);
            }
        }
        if(_Nav.path.corners.Length>1)                  //時刻檢測路線的點,當大于1的時候,把這些點賦予給LineRenderer來繪制出線條
        {
            _LineRenderer.SetVertexCount(_Nav.path.corners.Length);
            _LineRenderer.SetPositions(_Nav.path.corners);
        }         
    }
}

1.需要在Resources下放置一個名字為“LineRender”預制體,上面掛有Linerenderer的組件

2.cube身上要添加NavMeshAgent這個組件

3.腳本掛相機上

額外補充:如果要時刻創(chuàng)建障礙物,或者說場景里有個非靜態(tài)的帶剛體的物體,角色移動過去想要繞開他,如何做呢?

答案是在該物體上天劍NavMeshObstacle就可以了: 

記得把Carve勾上


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多