예제 #1
0
    public override void ProcessFrame(Playable playable, FrameData info, object playerData)
    {
        UnlockableDoor unlockableDoor = playerData as UnlockableDoor;

        if (!unlockableDoor)
        {
            return;
        }

        this.unlockableDoor = unlockableDoor;
        isOpening           = unlockableDoor.GetOpenStateOnPress(pressed: true);
        int inputCount = playable.GetInputCount();

        for (int i = 0; i < inputCount; i++)
        {
            float weight = playable.GetInputWeight(i);
            ScriptPlayable <UnlockableDoorPressBehaviour> input = (ScriptPlayable <UnlockableDoorPressBehaviour>)playable.GetInput(i);
            UnlockableDoorPressBehaviour behaviour = input.GetBehaviour();

            unlockableDoor.doorOpener.SetNormalizedTime(isOpening, weight);

            if (!firstFrameHappened)
            {
                firstFrameHappened = true;
            }
        }
    }
예제 #2
0
 public override void OnPlayableDestroy(Playable playable)
 {
     firstFrameHappened = false;
     if (unlockableDoor)
     {
         if (!Application.isPlaying)
         {
             unlockableDoor.doorOpener.Reset();
         }
         unlockableDoor = null;
     }
 }