public override void Attack() { if (objPool == null) { objPool = new GameObjectPool(GameData.Instance.gamePlayManager. gameObjectPoolPosition.transform.position.x, shotObj); } if (!objPool.NextGameObject(out tempObj)) { tempObj = Instantiate(shotObj, GameData.Instance.gamePlayManager.gameObjectPoolPosition .transform.position, Quaternion.identity) as GameObject; tempObj.name = shotObj.name + objPool.lastIndex; objPool.AddGameObject(tempObj); } // 위치 지정 tempObj.transform.position = firePosition.position; // 속도 지정 tempVector2 = Vector2.right * -1 * fireSpeed; tempObj.rigidbody2D.velocity = tempVector2; // 공격력 설정 EnemyShotObj tempEnemyShot = tempObj.GetComponent <EnemyShotObj>(); tempEnemyShot.InitShotObj(attackPower); }
public override void Attack() { if (spawnPos.x == 0) { spawnPos += GameData.Instance.gamePlayManager .gameObjectPoolPosition.transform.position; } //원거리에서 공격할 수 있도록 구현. if (objPool == null) { objPool = new GameObjectPool( spawnPos.x, shotObj); } EnemyShotObj tempEnemyShot = null; if (!objPool.NextGameObject(out tempObj)) { tempObj = Instantiate( shotObj, spawnPos, Quaternion.identity ) as GameObject; tempObj.name = shotObj.name + objPool.lastIndex; objPool.AddGameObject(tempObj); tempEnemyShot = tempObj.GetComponent <EnemyShotObj>(); tempEnemyShot.InitReturnPosition(spawnPos); } // position move tempObj.transform.position = firePosition.position; //속도 지정. tempVector2 = Vector2.right * -1 * fireSpeed; tempObj.rigidbody2D.velocity = tempVector2; //게임 오브젝트에 공격력을 담아 장애물 등과 충돌했을 때 데미지를 끼칠 수 있도록 한다. if (tempEnemyShot == null) { tempEnemyShot = tempObj.GetComponent <EnemyShotObj>(); } tempEnemyShot.InitShotObj(attackPower); tempEnemyShot.TurnOnTrigger(); }