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); } }
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); } } } }
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); } } }; }
/// <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()); } }
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(); }