|  |  |  | 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<AttackBehaviour>)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); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |