Пример #1
0
 /// <summary>
 /// プレイする.
 /// </summary>
 public void Play(bool isForward)
 {
     if (isForward)
     {
         if (autoClose)
         {
             autoCloseState = AutoCloseState.CLOSE_REQUESTED;
             tweenStartTime = Time.timeSinceLevelLoad;
         }
         gameObject.SetActive(true);
         SetButtonDisabled();
         foreach (uTweener tween in tweens)
         {
             tween.Play(PlayDirection.Forward);
         }
     }
     else
     {
         SetButtonDisabled();
         foreach (uTweener tween in tweens)
         {
             tween.Play(PlayDirection.Reverse);
         }
     }
 }
Пример #2
0
 /// <summary>
 /// 更新.
 /// </summary>
 void Update()
 {
     if (autoClose && autoCloseState == AutoCloseState.CLOSE_REQUESTED)
     {
         if (Time.timeSinceLevelLoad - tweenStartTime > autoCloseTime)
         {
             autoCloseState = AutoCloseState.CLOSING;
             Play(false);
         }
     }
 }
Пример #3
0
 /// <summary>
 /// GameObjectの表示・非表示を切り替えるマスターのTweenが終了したとき.
 /// </summary>
 public void OnFinishMasterTween()
 {
     if (masterTween.factor == 0.0f)
     {
         gameObject.SetActive(false);
         if (autoCloseState == AutoCloseState.CLOSING)
         {
             if (onFinishAutoClose != null)
             {
                 onFinishAutoClose.Invoke();
             }
             autoCloseState = AutoCloseState.NONE;
         }
     }
     else
     {
         SetButtonEnabled();
     }
 }
Пример #4
0
        /// <summary>
        /// 生成時.
        /// </summary>
        void Awake()
        {
            tweens = new List <uTweener>();
            foreach (uTweener tween in GetComponents <uTweener>())
            {
                if (masterTween == null)
                {
                    switch (masterTweenKind)
                    {
                    case MasterTweenKind.ALPHA:
                        masterTween = (uTweenAlpha)tween;
                        break;

                    case MasterTweenKind.SCALE:
                        masterTween = (uTweenScale)tween;
                        break;

                    case MasterTweenKind.POS:
                        masterTween = (uTweenPosition)tween;
                        break;

                    case MasterTweenKind.ROT:
                        masterTween = (uTweenRotation)tween;
                        break;

                    case MasterTweenKind.PATH:
                        masterTween = (uTweenPath)tween;
                        break;
                    }
                }
                tweens.Add(tween);
            }
            if (masterTween == null)
            {
                Debug.LogError("plaese add selected kind of tween! :" + masterTweenKind);
            }
            else
            {
#if UNITY_EDITOR
                for (int i = 0; i < masterTween.onFinished.GetPersistentEventCount(); i++)
                {
                    if (masterTween.onFinished.GetPersistentMethodName(i) == "OnFinishMasterTween")
                    {
                        Debug.LogWarning("OnFinishMasterTweenは自動で追加されるので削除してください");
                    }
                }
#endif
                masterTween.onFinished.RemoveListener(OnFinishMasterTween); // 旧仕様で使用している可能性があるので.
                masterTween.onFinished.AddListener(OnFinishMasterTween);

                // 自動で閉じるイベントは有効時にチェックする.
                if (masterTween.enabled)
                {
                    if (autoClose)
                    {
                        autoCloseState = AutoCloseState.CLOSE_REQUESTED;
                        tweenStartTime = Time.timeSinceLevelLoad;
                    }
                }
            }
        }