//開きコルーチン 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; }
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); } } } }; }
void Start() { _rigidbody = GetComponent <Rigidbody2D>(); if (!InGameManager.IsInstance()) { return; } //アニメーション切り替え gameObject.GetComponent <PlayerAnimController>().ChangeAnim(PlayerAnimController.ANIMATION_ID.BackWait); }
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; }
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(); } } }