public void Hide(Action onComplete) { OnHide(() => { EventUtility.SafeInvokeAction(onComplete); m_IsShowing = false; }); }
public void Show(Action onComplete, Action <int> result = null) { if (result != null) { m_Result = result; } OnShow(() => { m_IsShowing = true; EventUtility.SafeInvokeAction(onComplete); }); }
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); }); }); }); }
/// <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); } }
/// <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); } }
/// <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 }
/// <summary> /// GooglePlayServiceにサインインする。 /// </summary> public virtual void SignIn(Action <bool> result = null) { #if UNITY_ANDROID Social.localUser.Authenticate((success) => EventUtility.SafeInvokeAction(result, success)); #endif }
protected virtual void OnHide(Action onComplete) { EventUtility.SafeInvokeAction(onComplete); }
/// <summary> /// クローズボタンを押された時は、 -1 を結果として返す。 /// </summary> protected virtual void OnClickClose() { EventUtility.SafeInvokeAction(m_Result, -1); CloseDialogAuto(); }
public void OnClickDialogButton(int idx) { EventUtility.SafeInvokeAction(m_Result, idx); }
protected virtual void OnChangeScene(BaseScene current, BaseScene next, Action onComplete) { EventUtility.SafeInvokeAction(onComplete); }
private void CallBackEvent(Action a, UnityEvent e) { EventUtility.SafeInvokeAction(a); EventUtility.SafeInvokeUnityEvent(e); }
protected virtual void OnBeforeShowDialog(BaseDialog dialog, Action onComplete) { EventUtility.SafeInvokeAction(onComplete); }
protected virtual void OnAfterHideDialog(BaseDialog dialog, Action onComplete) { EventUtility.SafeInvokeAction(onComplete); }