Exemplo n.º 1
0
 public override void ProcessFrame(Playable playable, FrameData info, object playerData)
 {
     objectStatus.Clear();
     for (int i = 0; i < playable.GetInputCount(); i++)
     {
         ScriptPlayable <EZActivationBehaviour> inputPlayable = (ScriptPlayable <EZActivationBehaviour>)playable.GetInput(i);
         EZActivationBehaviour inputBehaviour = inputPlayable.GetBehaviour();
         if (inputBehaviour.gameObject == null)
         {
             continue;
         }
         if (objectStatus.ContainsKey(inputBehaviour.gameObject))
         {
             objectStatus[inputBehaviour.gameObject] |= inputPlayable.GetPlayState() == PlayState.Playing;
         }
         else
         {
             objectStatus[inputBehaviour.gameObject] = inputPlayable.GetPlayState() == PlayState.Playing;
         }
     }
     foreach (var status in objectStatus)
     {
         status.Key.SetActive(status.Value);
     }
 }
Exemplo n.º 2
0
        // 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++)
            {
                ScriptPlayable <TimelineAnimatorBehaviour> inputPlayable = (ScriptPlayable <TimelineAnimatorBehaviour>)playable.GetInput(i);
                TimelineAnimatorBehaviour input = inputPlayable.GetBehaviour();

                if (!input.target || !input.target.activeSelf)
                {
                    continue;
                }

                if (inputPlayable.GetPlayState() != PlayState.Playing)
                {
                    continue;
                }

                // Use the above variables to process each frame of this playable.
                float timeNormalized = (float)(inputPlayable.GetTime() / input.duration);
                Animate(input, timeNormalized);
            }
        }