Beispiel #1
0
        private void OnTriggerEnter2D(Collider2D collision)
        {
            if (InGameManager.IsInstance() == false)
            {
                return;
            }

            //TODO 接触物判定
            if (LayerMask.LayerToName(collision.gameObject.layer) == "Bullet")
            {
                EffectManager.Instance.CreateEffect(EffectID.DestoryEnemy, gameObject.transform.position);
                //復活可能なら
                if (_canRebirth)
                {
                    _elementObj = GetComponentInChildren <ElementObject>();

                    //再生を司るものに情報を送る
                    InGameManager.Instance.RebornSet(this);
                    //敵破壊サウンド
                    if (InGameManager.IsInstance())
                    {
                        if (InGameManager.Instance.GameState == InGameManager.State.Play)
                        {
                            Util.Sound.SoundManager.Instance.PlayOneShot(AudioKey.in_death);
                        }
                    }
                    // 非表示
                    gameObject.SetActive(false);

                    return;
                }
                //Debug.Log("壊れるぅ");
                Destroy(gameObject);
            }
        }
Beispiel #2
0
        void Update()
        {
            var lockOn = Selector.LockOnObj;

            if (!lockOn.CheckOnScreen(transform.position))
            {
                // 画面外に出たらターゲット解除
                Release();
                if (InGameManager.IsInstance())
                {
                    if (InGameManager.Instance.GameState == InGameManager.State.Play)
                    {
                        SoundManager.Instance.PlayOneShot(AudioKey.in_play_lock_off);
                    }
                }
            }
        }
Beispiel #3
0
 protected override void ColliderSetting()
 {
     _onEnter += (Collider2D other) =>
     {
         if (other.GetComponent <Player>())
         {
             if (InGameManager.IsInstance())
             {
                 InGameManager.Instance.StageClear();
                 //クリアエフェクトのセット
                 EffectManager.Instance.CreateEffect(EffectID.ClearEffect, other.gameObject, new Vector3(0, -3, 0));
                 InGameManager.Instance.Messenger.HideWindow();
                 Util.Sound.SoundManager.Instance.Stop(AudioKey.PlayBGM);
             }
         }
     };
 }
Beispiel #4
0
        /// <summary>
        /// 復活
        /// </summary>
        public void Reborn()
        {
            // 初期化
            // 初期位置
            _rigidBody2d.gameObject.transform.position = _initPos;

            // SE
            if (InGameManager.IsInstance())
            {
                if (InGameManager.IsInstance())
                {
                    if (InGameManager.Instance.GameState == InGameManager.State.Play)
                    {
                        Util.Sound.SoundManager.Instance.PlayOneShot(AudioKey.in_reborn);
                    }
                }
            }
            //復活エフェクト
            EffectManager.Instance.CreateEffect(EffectID.EnemyRespown, gameObject.transform.position, 2);

            // 動きリセット
            ElementUpdate();

            // 今の要素を忘れる
            ForgetAllElement();

            // 要素を思い出す
            ReCallElement();

            // 復活
            transform.parent.gameObject.SetActive(true);

            //親オブジェのレイヤーが「Enemy」なら
            if (LayerMask.LayerToName(gameObject.transform.parent.gameObject.layer) == "Enemy")
            {
                //アニメーションを向きに合わせて変更
                transform.parent.GetComponent <EnemyAnimController>().ChangeAnim(GetComponent <Play.Element.DiectionTest>().GetDir());
            }
            else if (LayerMask.LayerToName(gameObject.transform.parent.gameObject.layer) == "Object")
            {
                //画像を向きに合わせて変更
                transform.parent.GetComponent <ChangeSprite>().ChangeImage(GetComponent <Play.Element.DiectionTest>().GetDir());
            }
        }
Beispiel #5
0
        private IEnumerator ReturnToSanityCorutine()
        {
            // SE
            if (InGameManager.IsInstance())
            {
                if (InGameManager.Instance.GameState == InGameManager.State.Play)
                {
                    Util.Sound.SoundManager.Instance.PlayOneShot(AudioKey.in_sanity);
                }
            }
            // 状態の変更
            _stats = ElementStates.Remember;

            // 今の要素を忘れる
            ForgetAllElement();

            // 元の位置に戻る
            yield return(ReturnToInitPos());

            // 要素を思い出す
            ReCallElement();
        }