資源簡介
里面包含整個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.me
?????文件????????172??2020-05-08?18:05??DStarLiteTesting\Assets\Prefabs.me
????I.A....?????36560??2020-05-09?23:20??DStarLiteTesting\Assets\Scenes\DStarLiteDemonstration.unity
?????文件????????155??2019-09-14?13:06??DStarLiteTesting\Assets\Scenes\DStarLiteDemonstration.unity.me
?????文件????????172??2020-05-08?18:04??DStarLiteTesting\Assets\Scenes.me
?????文件???????8557??2020-05-09?22:40??DStarLiteTesting\Assets\sc
?????文件????????243??2020-05-07?21:17??DStarLiteTesting\Assets\sc
?????文件????????961??2020-05-09?23:01??DStarLiteTesting\Assets\sc
?????文件????????243??2020-05-09?15:03??DStarLiteTesting\Assets\sc
?????文件????????172??2020-05-08?18:11??DStarLiteTesting\Assets\sc
?????文件??????10547??2020-05-11?23:55??DStarLiteTesting\Assets\sc
?????文件????????243??2020-05-07?15:28??DStarLiteTesting\Assets\sc
?????文件???????6180??2020-05-09?12:53??DStarLiteTesting\Assets\sc
?????文件????????243??2020-05-07?15:32??DStarLiteTesting\Assets\sc
?????文件???????2745??2020-05-09?21:19??DStarLiteTesting\Assets\sc
?????文件????????243??2020-05-07?15:40??DStarLiteTesting\Assets\sc
?????文件????????172??2020-05-08?18:09??DStarLiteTesting\Assets\sc
?????文件???????1015??2020-05-09?14:52??DStarLiteTesting\Assets\sc
?????文件????????243??2020-05-08?18:06??DStarLiteTesting\Assets\sc
?????文件????????172??2020-05-08?18:06??DStarLiteTesting\Assets\sc
?????文件????????172??2020-05-08?18:06??DStarLiteTesting\Assets\sc
?????文件????????370??2020-05-08?18:02??DStarLiteTesting\Assets\Sprites\white.png
?????文件???????2058??2020-05-08?18:10??DStarLiteTesting\Assets\Sprites\white.png.me
?????文件????????172??2020-05-08?18:10??DStarLiteTesting\Assets\Sprites.me
?????文件????????917??2020-05-08?18:07??DStarLiteTesting\DStarLiteTesting.sln
............此處省略4799個文件信息
評論
共有 條評論