C# 기초 문법 (열거형, 오버로딩, SDLC)

로젠·2024년 4월 22일
0

게임 프로그래밍

목록 보기
10/49
post-thumbnail

enum

enum은 열거형으로 지정된 상수 집합을 나타내는 것이다.

enum Direction
{
	Forward = 0b_0000_0001,
    Backward = 0b_0000_0010,
    Right = 0b_0000_0100,
    Left = 0b_0000_1000,
}
void Start()
{
	uint direction = 0b_0000_0000;
    if (Input.GetKeyDown(KeyCode.W))
            direction |= (byte)Direction.Forward;
        else if (Input.GetKeyDown(KeyCode.S))
            direction |= (byte)Direction.Backward;
        if (Input.GetKeyDown(KeyCode.D))
            direction |= (byte)Direction.Right;
        else if (Input.GetKeyDown(KeyCode.A))
            direction |= (byte)Direction.Left;
}
private void Move(Direction direction)
{
    float x = 0.0f, z = 0.0f;
    switch (direction)
    {
        case Direction.Forward: z = 1.0f; break;
        case Direction.Backward: z -= 1.0f; break;
        case Direction.Right: x = 1.0f; break;
        case Direction.Left: x -= 1.0f; break;
    }
    print($"이동 방향 : {direction.ToString()}");
    transform.Translate(x, 0.0f, z);
    print($"이동 위치 : {transform.position}");
}

오버로딩

오버로딩은 같은 이름의 함수가 있어도 대입되는 값에 따라 맞는 함수를 찾아가는 것을 말한다.

private void Update()
{
    if (Input.GetKeyDown(KeyCode.Alpha1))
        Move(1.0f);
    if (Input.GetKeyDown(KeyCode.Alpha2))
        Move(new Vector2(1.0f, 1.0f));
    if (Input.GetKeyDown(KeyCode.Alpha3))
        Move(new Vector3(1.0f, 1.0f, 1.0f));
}
private void Move(float x)
{
    transform.Translate(x, 0, 0);
}
private void Move(Vector2 amount)
{
    transform.Translate(amount.x, 0.0f, amount.y);
}
private void Move(Vector3 amount)
{
    transform.Translate(amount);
}

SDLC

프로그램을 만들때 요구사항 분석 -> 설계 -> 개발 -> 테스트 -> 유지보수 -> 폐기 순서로 만든다.

0개의 댓글