コード例 #1
0
ファイル: MatchingLoop.cs プロジェクト: y-tomita/UnityGame
        /// <summary>
        /// 開始時初期化
        /// </summary>
        /// <returns></returns>
        public async override UniTask Enter(IBridgeLoopParam param)
        {
            loopParam = param as ParamMatchingLoop;
            await UniTask.Yield(PlayerLoopTiming.Update, this.GetCancellationTokenOnDestroy());

            // 接続開始
            connectStart().Forget();
        }
コード例 #2
0
ファイル: LoopExecuter.cs プロジェクト: y-tomita/UnityGame
        /// <summary>
        /// Loop変更 / Stack Topを消して差し替える
        /// </summary>
        /// <param name="nextLoop"></param>
        public void Push(eLoop nextLoop, IBridgeLoopParam param = null)
        {
            Param parameter = new Param {
                Current = nextLoop, BridgeParam = param, Obj = null,
            };

            stack.Push(parameter);
            execAsync(parameter).Forget();
        }
コード例 #3
0
        /// <summary>
        /// テキスト明滅させて次のLoopへ遷移
        /// </summary>
        /// <param name="txt"></param>
        /// <param name="loopId"></param>
        /// <returns></returns>
        async private UniTask transitStart(TextMeshProUGUI txt, eLoop loop, IBridgeLoopParam param = null)
        {
            isTransiting = true;

            await LibFunction.FlashUIAsync(txt, this.GetCancellationTokenOnDestroy());

            await UniTask.Delay(200, cancellationToken : this.GetCancellationTokenOnDestroy());

            loopExecuter.Push(loop, param);
        }
コード例 #4
0
ファイル: LoopExecuter.cs プロジェクト: y-tomita/UnityGame
 /// <summary>
 /// タイトル画面まで戻る
 /// </summary>
 /// <param name="overwiteParam"></param>
 public void ReturnToTitle(IBridgeLoopParam overwiteParam = null)
 {
     while (stack.Count > 1)
     {
         stack.Pop();
         var param = stack.Peek();
         if (param.Current == eLoop.Title)
         {
             execAsync(param).Forget();
             break;
         }
     }
 }
コード例 #5
0
ファイル: LoopExecuter.cs プロジェクト: y-tomita/UnityGame
        /// <summary>
        /// 前のLoopへ戻る
        /// </summary>
        public void Pop(IBridgeLoopParam overWriteParam = null)
        {
            // 排除
            stack.Pop();

            // 前のLoopへ戻る
            var param = stack.Peek();

            if (overWriteParam != null)
            {   // BridgeParamは上書きできるように
                param.BridgeParam = overWriteParam;
            }

            execAsync(param).Forget();
        }
コード例 #6
0
        /// <summary>
        /// 開始時初期化
        /// </summary>
        /// <returns></returns>
        async public override UniTask Enter(IBridgeLoopParam param)
        {
            // ボードのロード
            GameObject loadedObj = Instantiate(Resources.Load("Prefabs/Board/Board")) as GameObject;

            viewer = loadedObj != null?loadedObj.GetComponent <BoardViewer>() : null;

            Assert.IsTrue(viewer != null, "Boardとしての機能がない");
            loadedObj.SetParentToLocalInitialize(gameObject);

            // 1人用に初期化
            input = new KeyPlayInput();

            // ゲームスタート
            GameStart(input);
            await UniTask.Yield(PlayerLoopTiming.Update, cancellationToken : this.GetCancellationTokenOnDestroy());
        }
コード例 #7
0
        /// <summary>
        /// 開始時初期化
        /// </summary>
        /// <returns></returns>
        async public override UniTask Enter(IBridgeLoopParam param)
        {
            await UniTask.Yield(PlayerLoopTiming.Update, this.GetCancellationTokenOnDestroy());

            loopParam = param as ParamMainGameWithNetwork;
            input     = new KeyPlayInput();

            // ボードのロード

            // 自分と、対戦の場合は対戦相手
            playerInfo.Add(new PlayerInfo(loadBoardViewer(true, loopParam.WithOther)));
            if (loopParam.WithOther)
            {
                playerInfo.Add(new PlayerInfo(loadBoardViewer(false, loopParam.WithOther)));
            }

            // 接続開始
            connectStart().Forget();
        }
コード例 #8
0
ファイル: ILoop.cs プロジェクト: y-tomita/UnityGame
        // ------------------------------
        // インターフェース
        // ------------------------------

        /// <summary>初期化関数</summary>
        public abstract UniTask Enter(IBridgeLoopParam param);
コード例 #9
0
 /// <summary>
 /// 開始時初期化
 /// </summary>
 /// <returns></returns>
 async public override UniTask Enter(IBridgeLoopParam param)
 {   // warning回避…
     await UniTask.Yield(PlayerLoopTiming.Update, this.GetCancellationTokenOnDestroy());
 }