示例#1
0
 public void Hide(Action onComplete)
 {
     OnHide(() => {
         EventUtility.SafeInvokeAction(onComplete);
         m_IsShowing = false;
     });
 }
示例#2
0
 public void Show(Action onComplete, Action <int> result = null)
 {
     if (result != null)
     {
         m_Result = result;
     }
     OnShow(() => {
         m_IsShowing = true;
         EventUtility.SafeInvokeAction(onComplete);
     });
 }
示例#3
0
        public void ChangeScene <U>(Action onComplete = null) where U : BaseScene
        {
            if (m_Scenes == null)
            {
                return;
            }

            var nextIdx = GetSceneIdx <U>();

            if (ArrayUtility.IsOutOfArray(m_Scenes, nextIdx))
            {
                return;
            }

            BaseScene next = m_Scenes[nextIdx];

            // シーン切替前の処理
            OnChangeSceneBefore(m_CurrentScene, next, () => {
                if (m_CurrentScene)
                {
                    m_CurrentScene.OnChangeDisableBefore();
                }
                next.OnChangeEnableBefore();

                // シーン切替中の処理
                OnChangeScene(m_CurrentScene, next, () => {
                    if (m_CurrentScene)
                    {
                        m_CurrentScene.OnChangeDisableAfter();
                    }
                    next.OnChangeEnableAfter();

                    // シーン切替後の処理
                    OnChangeSceneAfter(m_CurrentScene, next, () => {
                        m_CurrentScene = next;

                        EventUtility.SafeInvokeAction(onComplete);
                    });
                });
            });
        }
示例#4
0
        /// <summary>
        /// 指定されたファイルを読み取りDataStoreにデータをデシリアライズします。
        /// 指定されたファイルが存在していない場合は例外を発生させます。
        /// </summary>
        public void Load(string fileFullPath, [NotNull] BaseDataSerializer dataSerializer, Action onSuccess = null, Action onFailure = null)
        {
            lock (_lockObject) {
                try {
                    if (!File.Exists(fileFullPath))
                    {
                        throw new IOException(string.Format("指定されたファイルが存在しません! 指定されたファイル = {0}", fileFullPath));
                    }

                    using (StreamReader reader = GetStreamReader(fileFullPath)) {
                        dataSerializer.Deserialize(reader.ReadToEnd());
                    }
                } catch (Exception e) {
#if DEBUG_ON
                    Debug.LogException(e);
#endif
                    EventUtility.SafeInvokeAction(onFailure);
                    return;
                }

                EventUtility.SafeInvokeAction(onSuccess);
            }
        }
示例#5
0
        /// <summary>
        /// DataStoreのデータをシリアライズして指定されたファイルに保存します。
        /// 指定されたファイルが存在している場合は上書き、存在していない場合は新規作成します。
        /// </summary>
        public void Save(string fullPath, [NotNull] BaseDataSerializer dataSerializer, Action onSuccess = null, Action onFailure = null)
        {
            lock (_lockObject) {
                try {
                    if (File.Exists(fullPath))
                    {
                        File.Delete(fullPath);
                    }

                    string rawData = dataSerializer.Serialize();
                    using (StreamWriter writer = GetStreamWriter(fullPath)) {
                        writer.Write(rawData);
                    }
                } catch (Exception e) {
#if DEBUG_ON
                    Debug.LogException(e);
#endif
                    EventUtility.SafeInvokeAction(onFailure);
                    return;
                }

                EventUtility.SafeInvokeAction(onSuccess);
            }
        }
示例#6
0
        /// <summary>
        /// 実績を解除する。
        /// </summary>
        public virtual void Achieve(string achieveID, Action <bool> result = null)
        {
#if UNITY_ANDROID
            ((PlayGamesPlatform)Social.Active).ReportProgress(achieveID, 100.0f, (success) => EventUtility.SafeInvokeAction(result, success));
#endif
        }
示例#7
0
        /// <summary>
        /// GooglePlayServiceにサインインする。
        /// </summary>
        public virtual void SignIn(Action <bool> result = null)
        {
#if UNITY_ANDROID
            Social.localUser.Authenticate((success) => EventUtility.SafeInvokeAction(result, success));
#endif
        }
示例#8
0
 protected virtual void OnHide(Action onComplete)
 {
     EventUtility.SafeInvokeAction(onComplete);
 }
示例#9
0
 /// <summary>
 /// クローズボタンを押された時は、 -1 を結果として返す。
 /// </summary>
 protected virtual void OnClickClose()
 {
     EventUtility.SafeInvokeAction(m_Result, -1);
     CloseDialogAuto();
 }
示例#10
0
 public void OnClickDialogButton(int idx)
 {
     EventUtility.SafeInvokeAction(m_Result, idx);
 }
示例#11
0
 protected virtual void OnChangeScene(BaseScene current, BaseScene next, Action onComplete)
 {
     EventUtility.SafeInvokeAction(onComplete);
 }
示例#12
0
 private void CallBackEvent(Action a, UnityEvent e)
 {
     EventUtility.SafeInvokeAction(a);
     EventUtility.SafeInvokeUnityEvent(e);
 }
示例#13
0
 protected virtual void OnBeforeShowDialog(BaseDialog dialog, Action onComplete)
 {
     EventUtility.SafeInvokeAction(onComplete);
 }
示例#14
0
 protected virtual void OnAfterHideDialog(BaseDialog dialog, Action onComplete)
 {
     EventUtility.SafeInvokeAction(onComplete);
 }