using System; using UnityEngine; using UnityEngine.Playables; using UnityEngine.Timeline; public class ThrowTurnMixerBehaviour : PlayableBehaviour { public override void ProcessFrame(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 positionTimeClipTime = inputPlayable.GetTime(); var positionTimeClipTimeMax = inputPlayable.GetDuration(); if (positionTimeClipTime > 0 && positionTimeClipTime + 0.01f < positionTimeClipTimeMax) { trans.localScale = new Vector3(input.isRight ? 1 : -1, 1, 1); } } } }