using UnityEngine; using UnityEngine.Playables; using Game; public class AttackMixerBehaviour : PlayableBehaviour { public override void ProcessFrame(Playable playable, FrameData info, object playerData) { SwitchPanel(playable, info, playerData); DrawBox(playable, info, playerData); } private void SwitchPanel(Playable playable, FrameData info, object playerData) { } private void DrawBox(Playable playable, FrameData info, object playerData) { var trackBinding = playerData as GameObject; if (!trackBinding) return; var trans = trackBinding.transform; var inputCount = playable.GetInputCount(); for (var i = 0; i < inputCount; i++) { var inputPlayable = (ScriptPlayable)playable.GetInput(i); var input = inputPlayable.GetBehaviour(); var attackTimeClipTime = inputPlayable.GetTime(); var attackTimeClipTimeMax = inputPlayable.GetDuration(); if (attackTimeClipTime > 0 && attackTimeClipTime + 0.01f < attackTimeClipTimeMax) { var shape = input.ShapeNew; Util.DrawShape(input.ShapeNew, trans.position + shape.Offset, Vector3.right, Color.green); } } } }