You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.3 KiB
C#
37 lines
1.3 KiB
C#
using UnityEngine;
|
|
using UnityEngine.Playables;
|
|
using Game;
|
|
|
|
public class AttackMixerBehaviour : PlayableBehaviour
|
|
{
|
|
// NOTE: This function is called at runtime and edit time. Keep that in mind when setting the values of properties.
|
|
public override void ProcessFrame(Playable playable, FrameData info, object playerData)
|
|
{
|
|
Transform trackBinding = playerData as Transform;
|
|
|
|
if (!trackBinding)
|
|
return;
|
|
|
|
int inputCount = playable.GetInputCount();
|
|
|
|
for (int i = 0; i < inputCount; i++)
|
|
{
|
|
float inputWeight = playable.GetInputWeight(i);
|
|
ScriptPlayable<AttackBehaviour> inputPlayable = (ScriptPlayable<AttackBehaviour>)playable.GetInput(i);
|
|
AttackBehaviour input = inputPlayable.GetBehaviour();
|
|
var toGridSize = 16f / 64f;
|
|
|
|
var attackTimeClipTime = inputPlayable.GetTime();
|
|
var attackTimeClipTimeMax = inputPlayable.GetDuration();
|
|
|
|
if (attackTimeClipTime > 0 && attackTimeClipTime + 0.01f < attackTimeClipTimeMax)
|
|
{
|
|
Util.DrawBox(trackBinding.position + input.center * toGridSize, input.halfExtents * toGridSize, Vector3.right, Color.green);
|
|
}
|
|
|
|
// Use the above variables to process each frame of this playable.
|
|
|
|
}
|
|
}
|
|
}
|