본문 바로가기

기타/패스트캠퍼스 Unity

유니티 입문 패스트캠퍼스 챌린지 13일차

적 비행기 클래스 제작

- 적 상태 정의 (열거형): 사용 전/준비 완료/등장/전투 중/사망/퇴장

- 상태 변수

- 이동 계산에 사용할 상수 정의

- 이동 계산에 사용할 변수 정의

- 등장/퇴장에 사용할 메소드 추가

public class Enemy : MonoBehaviour
{
    public enum State
    {
        None = -1,  //사용전
        Ready = 0,  //준비완료
        Appear,     //등장
        Battle,     //전투중
        Dead,       //사망
        Disappear,  //퇴장
    }

    [SerializeField]
    State CurrentState = State.None;

    const float MaxSpeed = 10.0f;

    const float MaxSpeedTime = 0.5f;

    [SerializeField]
    Vector3 TargetPosition;

    [SerializeField]
    float CurrentSpeed;

    void UpdateSpeed()
    {

    }

    void UpdateMove()
    {

    }

    void Arrived()
    {

    }

    public void Appear(Vector3 targetPos)
    {
        TargetPosition = targetPos;
        CurrentSpeed = MaxSpeed;

        CurrentState = State.Appear;
    }

    void Disappear(Vector3 targetPos)
    {
        TargetPosition = targetPos;
        CurrentSpeed = 0;

        CurrentState = State.Disappear;
    }
}

 적 비행기를 위한 스크립트 Enemy.cs를 생성했다. 적 비행기의 상태를 관리하기위해 Enum을 정의해서 적이 생성중일때, 생성은 완료되었으나 사용 전일 때, 등장, 전투 중, 사망, 퇴장과 같은 상태를 정의 하였다.

 우선은 필요할것 같은 상태를 미리 정의해둔 단계로 개발 도중에 필요없는 상태가 있다면 추후 삭제가 될 수도 있다.

적 비행기의 속도는 너무 빠르지않게 최대 속도 제한을 미리 두기위해 MaxSpeed를 만들고, 현재 위치를 저장하기위한 TargetPosition을 정의하였다.

 

아직 사용하진않았지만 속도 조절, 등장, 퇴장을 위한 메서드도 미리 만들어두고, 등장, 퇴장 메서드는 상태나 속도를 조절하도록 미리 작성하였다.

 

 

적 비행기 게임 오브젝트 만들기

- 적 비행기 모델을 이용하여 게임 오브젝트 구성

- 적 클래스 스크립트 Attach

- Prefab으로 저장

 

 기본적으로 플레이어 비행기의 프리팹을 만들었던 과정과 동일하게 이루어진다. 다운받은 비행기 프리팹을 가져와서 EmptyObject에 붙이고 Enemy.cs 스크립트를 붙이고 다시 프리팹으로 저장한다> 프리팹 편집모드로 들어간다> 크기와 방향을 조절하고 기존 콜리더를 제거한다> 콜리더를 추가하고 크기를 조절한다.

 플레이어 비행기 프리팹을 만드는 과정과 동일하게 진행되었다.

적 비행기의 콜리더를 추가하는 모습

https://fastcampus.co.kr/dev_online_game

 

C#과 유니티로 배우는 게임 개발 올인원 패키지 Online. | 패스트캠퍼스

현직 게임업계 게임 개발자 직강 C# 프로그래밍부터 게임 물리와 수학까지 모두 정복!

fastcampus.co.kr

https://bit.ly/3FVdhDa

 

수강료 100% 환급 챌린지 | 패스트캠퍼스

딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.