first commit
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using NodeCanvas.Framework;
|
||||
using ParadoxNotion.Design;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
namespace NodeCanvas.Tasks.Actions
|
||||
{
|
||||
|
||||
[Category("GameObject")]
|
||||
public class GetAllChildGameObjects : ActionTask<Transform>
|
||||
{
|
||||
|
||||
[BlackboardOnly]
|
||||
public BBParameter<List<GameObject>> saveAs;
|
||||
public bool recursive = false;
|
||||
|
||||
protected override string info {
|
||||
get { return string.Format("{0} = {1} Children Of {2}", saveAs, recursive ? "All" : "First", agentInfo); }
|
||||
}
|
||||
|
||||
protected override void OnExecute() {
|
||||
|
||||
var found = new List<Transform>();
|
||||
foreach ( Transform t in agent.transform ) {
|
||||
found.Add(t);
|
||||
if ( recursive ) {
|
||||
found.AddRange(Get(t));
|
||||
}
|
||||
}
|
||||
saveAs.value = found.Select(t => t.gameObject).ToList();
|
||||
EndAction();
|
||||
}
|
||||
|
||||
List<Transform> Get(Transform parent) {
|
||||
var found = new List<Transform>();
|
||||
foreach ( Transform t in parent ) {
|
||||
found.Add(t);
|
||||
found.AddRange(Get(t));
|
||||
}
|
||||
return found;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user