Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / common / NodeExtend.cs
  1. using Godot;
  2.  
  3. /// <summary>
  4. /// 该类为 node 节点通用扩展函数类
  5. /// </summary>
  6. public static class NodeExtend
  7. {
  8. /// <summary>
  9. /// 尝试将一个 Node2d 节点转换成一个 ActivityObject 对象, 如果转换失败, 则返回 null
  10. /// </summary>
  11. public static ActivityObject AsActivityObject(this Node2D node2d)
  12. {
  13. if (node2d is ActivityObject p)
  14. {
  15. return p;
  16. }
  17. var parent = node2d.GetParent();
  18. if (parent != null && parent is ActivityObject p2)
  19. {
  20. return p2;
  21. }
  22. return null;
  23. }
  24. /// <summary>
  25. /// 尝试将一个 Node2d 节点转换成一个 ActivityObject 对象, 如果转换失败, 则返回 null
  26. /// </summary>
  27. public static T AsActivityObject<T>(this Node2D node2d) where T : ActivityObject
  28. {
  29. if (node2d is T p)
  30. {
  31. return p;
  32. }
  33. var parent = node2d.GetParent();
  34. if (parent != null && parent is T p2)
  35. {
  36. return p2;
  37. }
  38. return null;
  39. }
  40. }