예제 #1
0
    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);
    }
예제 #2
0
    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();
    }