// 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) { int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); ScriptPlayable <MaterialAnimationBehaviour> inputPlayable = (ScriptPlayable <MaterialAnimationBehaviour>)playable.GetInput(i); MaterialAnimationBehaviour input = inputPlayable.GetBehaviour(); // Use the above variables to process each frame of this playable. } }
public override Playable CreatePlayable(PlayableGraph graph, GameObject owner) { var playable = ScriptPlayable <MaterialAnimationBehaviour> .Create(graph); MaterialAnimationBehaviour behaviour = playable.GetBehaviour(); behaviour.material = material; behaviour.propertyName = propertyName; behaviour.animationCurve = animationCurve; behaviour.rangeLower = rangeLower; behaviour.rangeUpper = rangeUpper; return(playable); }