30 lines
689 B
C#
30 lines
689 B
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Godot;
|
|
|
|
namespace BITKit;
|
|
/// <summary>
|
|
/// 为Godot.Node提供数学工具
|
|
/// </summary>
|
|
public static partial class MathNode
|
|
{
|
|
/// <summary>
|
|
/// 获取Node下所有的子Node节点
|
|
/// </summary>
|
|
/// <param name="self">Root Node</param>
|
|
/// <returns></returns>
|
|
public static IEnumerable<Node> GetAllNode(Node self)
|
|
{
|
|
List<Node> nodes = new() { self };
|
|
For(self);
|
|
void For(Node node)
|
|
{
|
|
foreach (var x in node.GetChildren())
|
|
{
|
|
For(x);
|
|
nodes.Add(x);
|
|
}
|
|
}
|
|
return nodes.Distinct();
|
|
}
|
|
} |