// -- // public override Playable CreatePlayable(PlayableGraph graph, GameObject owner) { var playable = ScriptPlayable <GameObjectActivationBehaviour> .Create(graph, template); GameObjectActivationBehaviour clone = playable.GetBehaviour(); return(playable); }
// -- // public override void ProcessFrame(Playable playable, FrameData info, object playerData) { if (!trackBinding) { trackBinding = playerData as GameObjectVariable; } if (!trackBinding) { return; } variableBinded = trackBinding.Value != null; if (!variableBinded) { return; } if (!firstDisabled) { firstDisabled = true; defaultActiveState = trackBinding.Value.activeInHierarchy; trackBinding.Value.SetActive(false); } int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); ScriptPlayable <GameObjectActivationBehaviour> inputPlayable = (ScriptPlayable <GameObjectActivationBehaviour>)playable.GetInput(i); GameObjectActivationBehaviour input = inputPlayable.GetBehaviour(); if (inputWeight > 0 && !input.Active) { trackBinding.Value.SetActive(true); input.Active = true; } else if (inputWeight == 0 && input.Active) { trackBinding.Value.SetActive(false); input.Active = false; } } }