본문 바로가기

개발자_뉴비일지

내일배움캠프 Unity 1일차 TIL - 시작

 

string keyword="시작";

 

내일배움캠프 본강의가 시작되고 어제 깔아둔 unity를 통해 첫 강의에 발을 내딛었다.

 

1주차 빗물받는 르탄이!

 

 

분명히 강의를 보고 똑같이 따라 했지만 오류는 왜 자꾸 뜨는 것이며, 르탄이는 왜 말을 안 듣는지..

 

요약

배경과 캐릭터를 배치하고 빗방울을 랜덤모양으로 떨어트린다.

땅에 떨어지면 빗방울은 없어진다.

 

1. 벽을 뚫고 지나가는 캐릭터를 돌려세우기


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

>>마우스를 클릭하면 방향전환


        if (transform.position.x >= 2.7f)
        {
            direction = -0.05f;
            toward = -1.0f;

        }
        if (transform.position.x <= -2.7f)
        {
            direction = 0.05f;
            toward = 1.0f;
        }
        transform.localScale = new Vector3(toward, 1, 1);

>>벽에 부딫히면 반대쪽으로 이동


        transform.position += new Vector3(direction, 0, 0);

>>캐릭터의 좌우반전

 

*코드를 잘 짰는데 캐릭터가 벽에 두세번 부딫혀야 좌우반전이 된다면

 

스크립트를 확인하자.

한개가 아닌 여러개가 들어가 있어 명령이 중복되면 캐릭터가 말을 안듣는다.

 

2. 빗방울 크기와 위치 랜덤 생성

 

 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);

>>타입별 빗방울의 크기와 점수 및 컬러

 

--

if (coll.gameObject.tag == "ground")

>>땅에 빗방울이 닿으면


{
    Destroy(gameObject);
}

>>사라짐

 

3.중력

둥둥떠있는 빗방울은 없다.

중력의 영향으로 땅에 떨어져야 할땐 Rigibody!

 

 

떨어지긴 떨어지는데 무적의 빗방울처럼 땅을 뚫고 떨어질수도 없다.

빗방울엔 circle collider / 땅엔 box collider 를 설정한다.

 

땅(ground)이 땅인지 알수있게 태그를 해준다.

 

 

 

 

 

오늘의 마무리

오티 및 식사시간 제외하고 5-6시간 공부했는데 겨우 빗방울을 생성함

목표했던 1주차 강의를 다 듣지 못해 아쉽다.