using System.Collections; using System.Collections.Generic; using BehaviorDesigner.Runtime; using BehaviorDesigner.Runtime.Tasks; using DarkTonic.MasterAudio; using UnityEngine; public class PlayerActions : Action { public class PlayPlayerAudio : Action { public SharedBool IsStop; public SharedString AudioName; public SharedBool IsBack; private Player _player; public override void OnStart() { base.OnStart(); _player = GameLocal.Ins.self; if(IsStop.Value) MasterAudio.StopAllSoundsOfTransform(_player.transform); MasterAudio.PlaySound3DAtTransform(AudioName.Value, _player.transform); } public override TaskStatus OnUpdate() { base.OnUpdate(); TaskStatus status = TaskStatus.Running; MasterAudioGroup audioGroup = MasterAudio.GrabGroup(AudioName.Value); if (audioGroup == null) { status = TaskStatus.Failure; } else if (audioGroup.ActiveVoices <= 0|| IsBack.Value) { status = TaskStatus.Success; } return status; } } }