void OnTriggerEnter2D(Collider2D c) { //Enterなので1体に対して複数回は発生しない if (c.gameObject.name.Substring(0, 9) == "charaBase") { allCharaBase charaB = c.gameObject.GetComponent <allCharaBase> (); charaB.setDamage(dealDamade); } }
void OnTriggerEnter2D(Collider2D c) { //void OnTriggerStay2D(Collider2D c){ if (c.gameObject.name.Substring(0, 9) == "charaBase") { allCharaBase charaB = c.gameObject.GetComponent <allCharaBase> (); charaB.setDamage(dealDamade); StartCoroutine(this.colliderDisabled()); } }
IEnumerator mostNearEnemyAttacking() { Vector3 tmpV; float minLength = 99999f; Transform nearTarget = null; //再接近ターゲットの確認 foreach (Transform t in lastFrameAttackTarget) { if (t != null) { tmpV = t.transform.position - this.transform.position; if (tmpV.magnitude < minLength) { minLength = tmpV.magnitude; nearTarget = t; } } } if (nearTarget == null) { Debug.Log("isNull!!"); yield break; //稀に破壊されてNullになるため } allCharaBase charaB = nearTarget.gameObject.GetComponent <allCharaBase> (); if (charaB.destroyF == true) { Debug.Log("isDestoryFlag!!"); yield break; } lastFrameAttackTarget.Clear(); deleyFlag = true; if (_animetionPrefabs != null) { //アニメーションがセットしてある場合 _animetionPrefabs.enabled = true; } int tmpDm = 1 + Mathf.FloorToInt(aEB.getAttackingPower() + (Random.value * 2)); charaB.setDamage(tmpDm); if (_attackEffectPrefab != null) { Instantiate(_attackEffectPrefab, nearTarget.transform.position, Quaternion.identity); } this.GetComponent <chara_attackEreaVisible>().setVisibleThisCicle(); //ここで再取得 thisEnemyAttackDeleySec = aEB.getAttackingDelay(); StartCoroutine(this.attackDeleyClearer()); }