Menu
CoddyTech

복습: 모듈식 포탑

Coddy Unity 여정의 Unity 게임 아키텍처 섹션에 포함된 레슨. 64개 중 5번째.

challenge icon

챌린지

쉬움

Turret1의 무기를 만드세요. TurretControl과 Cannon은 준비되어 있습니다.

  1. Ammo에서 public bool Take()를 작성하세요. 포탄을 사용하고 true를 반환하거나, name + " is empty"를 기록하고 false를 반환하세요.
  2. Weapon을 [RequireComponent(typeof(Ammo))]가 적용된 추상 클래스로 만들고, Fire()는 본문이 없는 protected abstract로 만드세요.
  3. cooldown 동안에는 Pull()이 아무 작업도 하지 않도록 하세요. 그렇지 않으면 Take()가 참일 때 쿨다운을 다시 시작하고 Fire()를 호출하세요.

‘플레이’를 누르고 탄약이 빌 때까지 발사하세요. 그런 다음 ‘확인’을 누르세요.

직접 해보기

using UnityEngine;

// 모든 포탑 무기가 공유하는 것.
public class Weapon : MonoBehaviour
{
    public GameObject shellPrefab;
    public float cooldown = 1f;

    public void Pull()
    {
        // cooldown이 끝날 때까지 기다린 뒤 Ammo에서 포탄을 가져와 발사한다
    }

    // 각 무기는 저마다의 방식으로 발사한다.
    protected virtual void Fire()
    {
    }

    // 포탑을 기준으로 이 위치에서 포탄이 포탑이 향하는 방향으로 날아간다.
    protected void Launch(Vector3 offset)
    {
        Instantiate(shellPrefab, transform.position + transform.rotation * offset, transform.rotation);
    }
}

Unity 게임 아키텍처의 모든 레슨

직접 연습해 보세요: Unity 플레이그라운드