unity unity節點遍歷之BFS DFS

2021-10-08 03:56:31 字數 953 閱讀 4218

在unity的hierachy面板上,節點是以樹形結構布局的,有些時候我們需要對節點進行遍歷,通常有兩種比較常用的遍歷方式,一種是從指定節點出發(比如根節點),優先遍歷直接相鄰的子節點,即廣度優先遍歷(bfs);另一種是從指定節點出發,一路遍歷到葉子節點後再遍歷下一節點,即深度優先遍歷(dfs)。遍歷節點只是一種方式,關鍵是遍歷節點期間我們需要做什麼,以及當前節點是否需要繼續往下遍歷?為此,這裡針對unity的transform進行擴充套件,如下:

bfs核心思想:優先遍歷直接相鄰的子節點,然後再以同樣的方式遍歷子節點的子節點,直到葉子節點。

using system.collections.generic;

using unityengine;

public static class transformextension

}public static void bfsgetchildren(this transform transform, transformaction action)

for (var index = 0; index < transformlist.count; index++)}}

針對上述擴充套件方法,這裡以兩種方式遍歷指定節點,並且跳過未啟用的子節點,測試原始碼如下:

using unityengine;

using unityeditor;

public class test

return active;

});debug.log("_____dfs_____");

trans.dfsgetchildren(child =>

return active;

});}

}

測試結果如下圖:

Jquery之DOM節點遍歷

html dom 是將乙個html文件當做樹結構,樹有根枝葉,html文件也有根枝葉,這些根枝葉,都可以叫做乙個個的節點,即dom節點 要對html進行操作,也就是對html 的dom節點進行操作,要操作,首先就是要找到進行操作的節點,其中一種方法就是用jquery的選擇器 基本選擇器,層次選擇器,...

jQuery之dom操作 遍歷節點

jquery之dom操作 遍歷節點 children children selector 只考慮子元素,不考慮其他後代元素 next next selector 下乙個兄弟節點 prev prev selector 上乙個兄弟節點 siblings siblings selector 其他兄弟節點 ...

MFC之TreeCtrl遍歷所有節點

這個例子,主要是查詢樹上的某個節點,並展開選中它。採用來了遞迴方法來實現。主要用到的方法 ctreectrl getchilditem htreeitem getchilditem htreeitem hitem 返回值 如果成功則返回該子項的控制代碼 否則返回null。採用遞迴的思想,把每個遍歷到...