예제 #1
0
        //開きコルーチン
        private IEnumerator DoorOpen()
        {
            //動作中ならリターン
            if (_inAction)
            {
                yield break;
            }
            //動作中ではない
            _inAction = true;
            //閉じようとしていない
            _isCloseing = false;
            //スイッチ画像差し替え
            _key.GetComponent <Doorkey>().ChangeImage(STATE.DOWN);
            //開きアニメーション
            gameObject.GetComponent <SimpleAnimation>().CrossFade("Open", 0);
            // SE
            if (InGameManager.IsInstance())
            {
                if (InGameManager.Instance.GameState == InGameManager.State.Play)
                {
                    Util.Sound.SoundManager.Instance.PlayOneShot(AudioKey.in_door_open);
                }
            }
            //開閉時間分待機
            yield return(new WaitForSeconds(_rugTime));

            //当たり判定解除
            _collider.enabled = false;
            //動作中ではない
            _inAction = false;
            //閉じてはいない
            _isClosed = false;
        }
예제 #2
0
        protected override void ColliderSetting()
        {
            _onEnter = (Collider2D other) =>
            {
                if (other.GetComponent <Player>())
                {
                    //インゲームマネージャチェック
                    if (InGameManager.IsInstance() == false)
                    {
                        return;
                    }
                    //チェックポイント更新時のみ以下処理
                    if (InGameManager.Instance.GetStartPos() == gameObject.transform.position)
                    {
                        return;
                    }

                    //エフェクト発生
                    EffectManager.Instance.CreateEffect(EffectID.CheckPoint, gameObject.transform.position, 1.0f);
                    // チェックポイントの更新
                    InGameManager.Instance.StageManager.UpdateCheckPoint(this);
                    //カメラマネージャに現在のチェックポイントを記憶&カメラ移動
                    CameraManager.Instance.CheckPointUpDate(gameObject.transform);
                    // SE
                    if (InGameManager.IsInstance())
                    {
                        if (InGameManager.Instance.GameState == InGameManager.State.Play)
                        {
                            Util.Sound.SoundManager.Instance.PlayOneShot(AudioKey.in_check_point);
                        }
                    }
                }
            };
        }
예제 #3
0
        void Start()
        {
            _rigidbody = GetComponent <Rigidbody2D>();

            if (!InGameManager.IsInstance())
            {
                return;
            }

            //アニメーション切り替え
            gameObject.GetComponent <PlayerAnimController>().ChangeAnim(PlayerAnimController.ANIMATION_ID.BackWait);
        }
예제 #4
0
        void Update()
        {
            if (!InGameManager.IsInstance())
            {
                return;
            }

            if (InGameManager.Instance.GameState != InGameManager.State.Play)
            {
                // ゲームが開始していないときは移動しない
                return;
            }

            // 死んでいるときは動かない
            if (PlayerState == State.Dead)
            {
                _rigidbody.velocity = Vector2.zero;
                return;
            }

            var controller = GameController.Instance;

            // 移動処理とポーズ処理
            Vector3 tryMove = Vector3.zero;

            if (controller.GetConnectFlag())
            {
                tryMove = ControllerControl(controller);
                //アニメーション切り替え
                gameObject.GetComponent <PlayerAnimController>().ChangeAnim(_direction, _waitCount);
            }
            else
            {
                tryMove = KeyboardControl();
                //アニメーション切り替え
                gameObject.GetComponent <PlayerAnimController>().ChangeAnim(_direction, _waitCount);
            }

            //待機時間経過
            if (tryMove == Vector3.zero)
            {
                _waitCount += Time.deltaTime;
            }
            else
            {
                _waitCount = 0;
            }

            //移動
            _rigidbody.velocity = Vector3.ClampMagnitude(tryMove, 1f) * _moveSpeed;
        }
예제 #5
0
        void Update()
        {
            if (!InGameManager.IsInstance())
            {
                return;
            }

            if (InGameManager.Instance.GameState != InGameManager.State.Play)
            {
                return;
            }

            // 選択
            var con = GameController.Instance;

            var  isTarget = TargetChoice.None;
            bool isSelect = false;
            bool isChange = false;

            if (con.GetConnectFlag())
            {
                isTarget = con.ButtonDown(Button.R1) ? TargetChoice.Front :
                           con.ButtonDown(Button.L1) ? TargetChoice.Next : TargetChoice.None;

                isSelect = con.ButtonDown(Button.A);
                isChange = con.ButtonDown(Button.B);
            }
            else
            {
                isTarget = Input.GetKeyDown(KeyCode.Space) ? TargetChoice.Next : TargetChoice.None;
                isSelect = Input.GetKeyDown(KeyCode.C);
                isChange = Input.GetKeyDown(KeyCode.V);
            }

            if (isTarget != TargetChoice.None)
            {
                // カメラにエレメントオブジェクトが移っているとき探す
                if (LockOnObj.CheckOnScreenAll())
                {
                    // 次のターゲットオブジェクトを取得
                    if (isTarget != TargetChoice.Next)
                    {
                        // 選択
                        TargetObject(LockOnObj.GetTarget(1));
                    }
                    else if (isTarget != TargetChoice.Front)
                    {
                        TargetObject(LockOnObj.GetTarget(-1));
                    }
                }
            }

            // 要素吸出し
            if (isSelect)
            {
                if (_targetObject)
                {
                    //コピー時エフェクト
                    CopyEffect();
                    //Dataパネル更新
                    DataPanelUpDate(_targetObject);
                    SelectObject();
                }
            }

            // 要素を移す
            if (isChange)
            {
                if (_targetObject)
                {
                    MoveElement(_targetObject);
                }
            }

            if (_targetObject)
            {
                //正気に戻ったらConsole破棄
                if (_targetObject.Stats == ElementObject.ElementStates.Remember)
                {
                    TargetUIRelease();
                }
            }
        }