2025-03-10 10:18:11 +08:00

65 lines
1.7 KiB
C#

//-----------------------------------------------------------------------------
// Copyright 2015-2020 RenderHeads Ltd. All rights reserved.
//-----------------------------------------------------------------------------
#if PLAYMAKER
using UnityEngine;
using HutongGames.PlayMaker;
using HutongGames.PlayMaker.Actions;
using Tooltip = HutongGames.PlayMaker.TooltipAttribute;
using RenderHeads.Media.AVProVideo;
namespace RenderHeads.Media.AVProVideo.PlayMaker.Actions
{
[ActionCategory("AVProVideo")]
[Tooltip("Gets the MediaPlayer of a DisplayUGUI Component.")]
public class AVProVideoDisplayUGUIGetMediaPlayer : ComponentAction<DisplayUGUI>
{
public AVProVideoActionHeader headerImage;
[RequiredField]
[CheckForComponent(typeof(DisplayUGUI))]
[Tooltip("The GameObject with a DisplayUGUI component.")]
public FsmOwnerDefault gameObject;
[Tooltip("The MediaPlayer GameObject.")]
[UIHint(UIHint.Variable)]
public FsmGameObject mediaPlayerGameObject;
[Tooltip("Event Sent if no MediaPlayer is referenced on the DisplayUGUI component")]
public FsmEvent missingMediaPlayerEvent;
public override void Reset()
{
gameObject = null;
mediaPlayerGameObject = null;
missingMediaPlayerEvent = null;
}
public override void OnEnter()
{
if (this.UpdateCache(Fsm.GetOwnerDefaultTarget(gameObject)))
{
ExecuteAction();
}
Finish();
}
void ExecuteAction()
{
mediaPlayerGameObject.Value = this.cachedComponent._mediaPlayer ? this.cachedComponent._mediaPlayer.gameObject : null;
if (missingMediaPlayerEvent != null && this.cachedComponent._mediaPlayer == null)
{
Fsm.Event(missingMediaPlayerEvent);
}
}
}
}
#endif