본문 바로가기
게임 개발 일지/내일배움캠프 WIL

캐릭터 방향 바꾸기 / Random.Range 사용하기

by 빛하_ 2023. 10. 30.

 

 

이 주의 학습 키워드
1. 클릭하면 캐릭터 방향을 좌우로 바꾸기

 

기대 결과 : 클릭을 한다 ▶ 방향이 바뀐다. (좌우)

* 방향을 좌우로 바꾸는 방법은?

클릭할 때마다 direction 에 -1을 곱한다.

즉, 클릭할 때마다 캐릭터 방향의 부호가 바뀜으로써 방향을 좌우로 바꿀 수 있다. 

 float direction = 0.05f;
 float toward = 1.0f;

//

if (Input.GetMouseButtonDown(0))
{
    toward *= -1;
    direction *= -1;

 

 

 

2. 세 가지 타입의 빗방울 만들기

기대 결과 : 등장하는 빗방울이 3가지 타입으로 랜덤하게 등장한다. (크기,점수, 색깔)

1) type, size, score 세 가지 변수 선언

2) 색깔은 GetComponent<SpriteRenderer>().color 사용

3. if, else if, else 활용

 * type = Random.Range : 범위 안의 값 중 랜덤한 하나의 값을 갖게 한다.

TIP ) 변수가 3개라면, if / else if / else 로 처리하는 습관을 갖자!

int type;
float size;
int score;

// Start is called before the first frame update
void Start()
{
    float x = Random.Range(-2.7f, 2.7f);
    float y = Random.Range(3.0f, 5.0f);
    transform.position = new Vector3(x, y, 0);

    type = Random.Range(1, 4);

    if (type == 1)
    {
        size = 1.2f;
        score = 3;
        GetComponent<SpriteRenderer>().color = new Color(100 / 255f, 100 / 255f, 255 / 255f, 255 / 255f);
    }
    else if (type == 2)
    {
        size = 1.0f;
        score = 2;
        GetComponent<SpriteRenderer>().color = new Color(130 / 255f, 130 / 255f, 255 / 255f, 255 / 255f);
    }
    else
    {
        size = 0.8f;
        score = 1;
        GetComponent<SpriteRenderer>().color = new Color(150 / 255f, 150 / 255f, 255 / 255f, 255 / 255f);
    }

    transform.localScale = new Vector3(size, size, 0);
}

 

 

3. GameManager의 역할

GameManager 는 모든 게임에 존재하는 관리자이자 '신'이다. 

대표적으로 점수 계산, 다시 시작하기, 재시작하면 아이템 지급하기, 광고 시청 등의 역할을 수행한다.

GameManager 는 무조건 하나여야만 한다!! (게임에 중요한 각종 역할을 수행하기 때문에)

* GameManager 하나만 존재하도록 하는 법 = 싱글톤 화

public static gameManager I;

void Awake()
{
    I = this;
}

 

 

 

4. 빗방울 여러 개 떨어지게 하기

아이디어 : 몇 초마다 동작 반복 + 특정 요소를 즉시 생성

두 기능은 모두 GameManager가 수행할 수 있다.

이 때, GameManager에 Prefabs가 필요하다.

Prefabs : 동작을 하나의 틀처럼 인식해 찍어내게 함. (Prefabs는 유니티의 Asset 폴더 밑에 존재)
Instantiate : 같은 동작을 계속 반복하게 함.

 

 

 

이 주의 회고

사전캠프 참여하고 첫 주였다.

월~목 4일 간은 예비군 훈련으로 인해 공부 시간이 많이 부족했다. 쉬는 시간 틈틈이 C# 문법을 공부했다.

사전캠프 1주차 강의를 따라 Unity와 Visual Studio를 설치하고 직접 만져보았다.

코딩이라는 거대한 산 앞에 장비 없이 선 초보 등반자가 된 기분이었다. 

 

[빗물 받는 르탄이] 미니게임을 만들면서 유니티의 기능과 C#의 함수에 대해 공부했다.

백지에서 직접 프로그래밍을 할 수 있는 수준은 안 되지만, 교재를 보고 하나씩 따라하면서 과정을 이해하기 위해 노력하고 있다.

다음 주 본 캠프 시작하는데 조금 떨리고 긴장된다. 

잘 적응해서 프로젝트에 기여할 수 있는 좋은 팀원이 되고 싶다. 

 

 

 

 

 

'게임 개발 일지 > 내일배움캠프 WIL' 카테고리의 다른 글

객체지향 SOLID 원칙 / git commit  (0) 2023.11.26
C#, Unity 기능 복습  (0) 2023.11.05

댓글