• 大小: 22.4MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-06-18
  • 语言: 其他
  • 标签: D*Lite  算法  Unity  项目  

资源简介

里面包含整个D*Lite算法演示的Unity项目,包括代码,注意看版本号,旧版的Unity可能无法打开。直接点开Asset/Scenes里面的.Unity就可以打开。 直接在Unity运行算法需要更长时间(所以里面的算法计时会偏长) 这里可以先下演示程序查看:https://download.csdn.net/download/mkr67n/12404898

资源截图

代码片段和文件信息

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

public class DStarLiteDebugger : MonoBehaviour
{
    [SerializeField]
    Gameobject mapElement;

    HashSet tempNode = new HashSet();
    Queue path;

    Color32 customRed = new Color32(255 75 55 255);
    Color32 skyBlue = new Color32(0 200 255 255);
    //=========temps==========
    Collider2D tempCollider;
    Gameobject temp;
    Tilescript tempTile;

    bool start;

    void Start()
    {
        //创建地图
        DStarDebugMap();
        UpdateDebugNumber();
    }
    void DStarDebugMap()
    {
        float sideLength = 1;
        int X = 20;
        int Y = 20;

        Gameobject temp;
        Gameobject[] allTile = new Gameobject[XY];

        DStarLite.nodes.Clear();
        //tiling
        for (int x = 0; x < 20; x++)
        {
            for (int y = 0; y < 20; y++)
            {
                temp = Instantiateject>(mapElement new Vector3(x * sideLength y * sideLength) Quaternion.identity);
                DStarLite.nodes.Add(temp.GetComponentript>().TileNode = new Node(x y temp));
                allTile[x y] = temp;  
            }
        }
        //neighbour
        //所有结点
        for (int x = 0; x < 20; x++)
        {
            for (int y = 0; y < 20; y++)
            {
                //九宫格内
                for (int i = x - 1; i <= x + 1; i++)
                {
                    for (int j = y - 1; j <= y + 1; j++)
                    {
                        //除自己以外
                        if ((i != x || j != y))
                        {
                            //且在范围内
                            if (i < 0 || i >= X || j < 0 || j >= Y)
                            {
                                continue;
                            }
                            else
                            {
                                //的邻居
                                allTile[x y].GetComponentript>().TileNode.neighbour
                                .Add(allTile[i j].GetComponentript>().TileNode);
                            }
                        }
                    }
                }
            }
        }
    }

    void Update()
    {
        //退出
        Esc();


        //显示路径
        VisiblePath();

        //右键中途取消设置障碍
        RighClickCancelBlock();

        //左键设置开始结束位置(第一次起点,第二次终点)
        LeftClickSetStartAndEnd();

        //中键设置障碍
        MiddleClickSetBlock();

        //空格键开始第一次寻路
        PressSpaceStart();
    }
    //==========注意,DStarLite的脚本没有直接挂载,但是这些函数会调用到那个算法的函数==========
    void PressSpaceStart()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            if(!start)
            {
                if(DStarLite.sStart != null && DStarLite.sGoal != null)
                {
                    DStarLite.Initialize();
        

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.    287744  2020-05-12 00:20  DStarLiteTesting\.vs\DStarLiteTesting\v16\.suo

     文件          0  2020-05-08 18:07  DStarLiteTesting\.vs\DStarLiteTesting\v16\Server\sqlite3\db.lock

     文件     937984  2020-05-12 00:20  DStarLiteTesting\.vs\DStarLiteTesting\v16\Server\sqlite3\storage.ide

     文件      46274  2020-05-11 23:52  DStarLiteTesting\Assembly-CSharp.csproj

    I.A....      8096  2020-05-08 22:51  DStarLiteTesting\Assets\Prefabs\Cell.prefab

     文件        154  2020-05-08 18:05  DStarLiteTesting\Assets\Prefabs\Cell.prefab.meta

     文件        172  2020-05-08 18:05  DStarLiteTesting\Assets\Prefabs.meta

    I.A....     36560  2020-05-09 23:20  DStarLiteTesting\Assets\Scenes\DStarLiteDemonstration.unity

     文件        155  2019-09-14 13:06  DStarLiteTesting\Assets\Scenes\DStarLiteDemonstration.unity.meta

     文件        172  2020-05-08 18:04  DStarLiteTesting\Assets\Scenes.meta

     文件       8557  2020-05-09 22:40  DStarLiteTesting\Assets\scripts\Debugger\DStarLiteDebugger.cs

     文件        243  2020-05-07 21:17  DStarLiteTesting\Assets\scripts\Debugger\DStarLiteDebugger.cs.meta

     文件        961  2020-05-09 23:01  DStarLiteTesting\Assets\scripts\Debugger\PrintUsingTime.cs

     文件        243  2020-05-09 15:03  DStarLiteTesting\Assets\scripts\Debugger\PrintUsingTime.cs.meta

     文件        172  2020-05-08 18:11  DStarLiteTesting\Assets\scripts\Debugger.meta

     文件      10547  2020-05-11 23:55  DStarLiteTesting\Assets\scripts\DstarLite\D_StarLite.cs

     文件        243  2020-05-07 15:28  DStarLiteTesting\Assets\scripts\DstarLite\D_StarLite.cs.meta

     文件       6180  2020-05-09 12:53  DStarLiteTesting\Assets\scripts\DstarLite\Key.cs

     文件        243  2020-05-07 15:32  DStarLiteTesting\Assets\scripts\DstarLite\Key.cs.meta

     文件       2745  2020-05-09 21:19  DStarLiteTesting\Assets\scripts\DstarLite\Node.cs

     文件        243  2020-05-07 15:40  DStarLiteTesting\Assets\scripts\DstarLite\Node.cs.meta

     文件        172  2020-05-08 18:09  DStarLiteTesting\Assets\scripts\DstarLite.meta

     文件       1015  2020-05-09 14:52  DStarLiteTesting\Assets\scripts\Tiles\Tilescript.cs

     文件        243  2020-05-08 18:06  DStarLiteTesting\Assets\scripts\Tiles\Tilescript.cs.meta

     文件        172  2020-05-08 18:06  DStarLiteTesting\Assets\scripts\Tiles.meta

     文件        172  2020-05-08 18:06  DStarLiteTesting\Assets\scripts.meta

     文件        370  2020-05-08 18:02  DStarLiteTesting\Assets\Sprites\white.png

     文件       2058  2020-05-08 18:10  DStarLiteTesting\Assets\Sprites\white.png.meta

     文件        172  2020-05-08 18:10  DStarLiteTesting\Assets\Sprites.meta

     文件        917  2020-05-08 18:07  DStarLiteTesting\DStarLiteTesting.sln

............此处省略4799个文件信息

评论

共有 条评论