Esempio n. 1
0
        public override void OnEnter()
        {
            if (timelineAsset == null)
            {
                Continue();
                return;
            }

            if (_inSceneTarget != FungusExt.AdvTargetObject.SelectedGameObject)
            {
                _target0 = AdvManager.Instance.GetAdvTargetObject(_inSceneTarget);
            }

            if (_target0 == null)
            {
                AdvUtility.LogWarning("> Timeline 指定的立繪已經不存在,因此跳過指令 ");
                Continue();
                return;
            }

            if (playableDirectors == null)
            {
                PlayableDirector tempDirector = new GameObject("tempDirector").AddComponent <PlayableDirector>();
                tempDirector.stopped += delegate {
                    Destroy(tempDirector.gameObject);
                };

                playableDirectors = tempDirector;
            }
            playableDirectors.playableAsset = timelineAsset;
            playableDirectors.SetBindingGameObject("Target0", _target0);

            playableDirectors.Play(timelineAsset);

            if (WaitForFinished)
            {
                playableDirectors.stopped += delegate {
                    Continue();
                };
            }
            else
            {
                Continue();
            }
        }