복습: 모듈식 포탑
Coddy Unity 여정의 Unity 게임 아키텍처 섹션에 포함된 레슨. 64개 중 5번째.
챌린지
쉬움Turret1의 무기를 만드세요. TurretControl과 Cannon은 준비되어 있습니다.
Ammo에서public bool Take()를 작성하세요. 포탄을 사용하고true를 반환하거나,name + " is empty"를 기록하고false를 반환하세요.Weapon을[RequireComponent(typeof(Ammo))]가 적용된 추상 클래스로 만들고,Fire()는 본문이 없는protected abstract로 만드세요.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 플레이그라운드