コード例 #1
0
        private void Update()
        {
            if (!IsExecuting || !waitingFin)
            {
                return;
            }
            //if (ctrl != null && ctrl.State != PlayableDirectorManualCtrl.CtrlState.Play)
            //{
            //    Logger.Log("启动PlayableDirectorManualCtrl");
            //    ctrl.Play();
            //}
            // if (!waitingFin) return;



            int updateTimes = PlayableDirectorManualCtrl.CalcEvaluateTimes(Time.deltaTime);

            if (updateTimes < 1)
            {
                timer += Time.deltaTime;
            }
            else
            {
                timer += PlayableDirectorManualCtrl.minUpdateTime * updateTimes;
            }

            if (timer >= waitTime)
            {
                if (waitUntilFinished)
                {
                    if (ctrl.State != PlayableDirectorManualCtrl.CtrlState.Play)
                    {
                        waitingFin = false;
                        Continue();
                    }
                }
                else
                {
                    waitingFin = false;
                    Continue();
                }
            }
        }
コード例 #2
0
        public override void OnEnter()
        {
            if (pd == null)
            {
                Continue();
                return;
            }

            ctrl = pd.gameObject.GetComponent <PlayableDirectorManualCtrl>();
            if (ctrl == null)
            {
                ctrl = pd.gameObject.AddComponent <PlayableDirectorManualCtrl>();
            }
            if (ctrl != null)
            {
                if (ctrl.State != PlayableDirectorManualCtrl.CtrlState.Play)
                {
                    //pd.initialTime = 0;
                    //pd.Play();
                    ctrl.Play();
                }
                else
                {
                    LoopTimeline.AddContinueCount();
                }

                if (waitTime > 0.001f || waitUntilFinished)
                {
                    timer      = 0f;
                    waitingFin = true;
                }
                else
                {
                    Continue();
                }
            }
            else
            {
                Continue();
            }
        }