Esempio n. 1
0
    void Fire(Vector3 inputPosition)
    {
        // 입력 위치(inputPosition)를 카메라가 바라보는 영역 안의 월드 좌표(절대 좌표)로 변환.
        tempVector3   = mainCamera.ScreenToWorldPoint(inputPosition);
        tempVector3.z = 0;
        // 벡터의 뺄셈 후 방향만 지닌 단위 벡터로 변경.
        fireDirection = tempVector3 - firePoint.position;
        fireDirection = fireDirection.normalized;

        // 발사할 오브젝트.
        shotObjScript = null;
        if (!objPool.NextGameObject(out tempObj))
        {
            tempObj = Instantiate(
                fireObj,
                spawnPos,
                Quaternion.Euler(Vector3.up * 90)
                ) as GameObject;
            tempObj.name = tempObj.name + objPool.lastIndex;
            objPool.AddGameObject(tempObj);

            shotObjScript = tempObj.GetComponent <ShotObj>();
            shotObjScript.InitReturnPosition(spawnPos);
        }

        if (shotObjScript == null)
        {
            shotObjScript = tempObj.GetComponent <ShotObj>();
        }

        tempObj.transform.position = firePoint.position;
        // 발사한 오브젝트 속도 계산.
        tempVector2.Set(fireDirection.x, fireDirection.y);
        tempVector2 = tempVector2 * fireSpeed;
        // 속도 적용.
        tempObj.rigidbody2D.velocity = tempVector2;

        // 공격력을 전달한다.
        if (attDamage == 0)
        {
            attDamage
                = 1 + GameData.Instance.ConvertUpgradeLvToAddValue(
                      GameData.Instance.userdata.attLv);
        }
        shotObjScript.InitShotObj(attDamage);
        shotObjScript.TurnOnTrigger();
    }
Esempio n. 2
0
 void Fire(Vector3 inputPosition)
 {
     // 입력 위치(inputPosition)를 카메라가 바라보는 영역 안의 월드 좌표(절대 좌표)로 변환.
     tempVector3   = mainCamera.ScreenToWorldPoint(inputPosition);
     tempVector3.z = 0;
     // 벡터의 뺄셈 후 방향만 지닌 단위 벡터로 변경.
     fireDirection = tempVector3 - firePoint.position;
     fireDirection = fireDirection.normalized;
     // 발사.
     tempObj = Instantiate(fireObj, firePoint.position, Quaternion.LookRotation(fireDirection)) as GameObject;
     // 발사한 오브젝트 속도 계산.
     tempVector2.Set(fireDirection.x, fireDirection.y);
     tempVector2 = tempVector2 * fireSpeed;
     // 속도 적용.
     tempObj.rigidbody2D.velocity = tempVector2;
     // 공격력을 전달한다.
     shotObjScript = tempObj.GetComponent <ShotObj>();
     shotObjScript.InitShotObj(1);
 }