Files
beyond/Assets/ThirdParty/PlayMaker/Actions/GameObject/FindChild.cs
2024-11-20 15:21:28 +01:00

50 lines
1.2 KiB
C#

// (c) Copyright HutongGames, LLC 2010-2013. All rights reserved.
using UnityEngine;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory(ActionCategory.GameObject)]
[Tooltip("Finds the Child of a GameObject by Name.\nNote, you can specify a path to the child, e.g., LeftShoulder/Arm/Hand/Finger. If you need to specify a tag, use GetChild.")]
public class FindChild : FsmStateAction
{
[RequiredField]
[Tooltip("The GameObject to search.")]
public FsmOwnerDefault gameObject;
[RequiredField]
[Tooltip("The name of the child. Note, you can specify a path to the child, e.g., LeftShoulder/Arm/Hand/Finger")]
public FsmString childName;
[RequiredField]
[UIHint(UIHint.Variable)]
[Tooltip("Store the child in a GameObject variable.")]
public FsmGameObject storeResult;
public override void Reset()
{
gameObject = null;
childName = "";
storeResult = null;
}
public override void OnEnter()
{
DoFindChild();
Finish();
}
void DoFindChild()
{
var go = Fsm.GetOwnerDefaultTarget(gameObject);
if (go == null)
{
return;
}
var transform = go.transform.Find(childName.Value);
storeResult.Value = transform != null ? transform.gameObject : null;
}
}
}