카테고리 없음

개인 과제 해설 영상

이황충 2024. 5. 14. 20:38

유니티 게임개발캠프 TIL 21일차

 

 

Vector의 정의 

  Vector = 크기 + 방향 

  여기서 VectorA - VectorB 를 하면 B에서 A로향하는 벡터값을 구할수있다. 

  그래서 예를들어 몬스터가 플레이어를 추적하는 로직을 만들때 플레이어의 벡터값 - 몬스터의 벡터값을 통해서

  진행 방향을 구해줄 수 있다.

 

Normalized 

  벡터의 방향은 그대로 유지하고 크기를 1로 만들주는 정규화라는 것

 

magnitude

  벡터의 크기는 그대로 유지하고 방향만 알고싶을때 사용하는것

 

GetComponent를 선언할때 만약 가져오려는게 자식에 속해있다면 GetComponentInChildren을 해줘야 한다.

 

버튼을 넣어줄때 On click()에 함수가 아닌 특정 오브젝트를 넣어 그 오브젝트가 활성화 되게 하는 방법도있다.

예를들면 팝업창 오브젝트형태로 만들어두고 체크를 풀어 비활성화를 시켜놓고

특정 버튼의 On Click()에 이 오브젝트를 넣고 Gameobject.SetActive 를 시키면 특정버튼을 눌렀을때

팝업창이 나타나게 하는 기능을 구현할 수 있다. 이거는 유용하게 쓰일것같다. 

 

 

강의를 따라 인풋시스템을 적용하고 실험해보니 캐릭터의 이동속도가 너무 느렸다. 하나하나 살펴봤더니 

void ApplyMovement(Vector2 direction)
{    
    rb.velocity = direction;  

    direction *= speed;   

이부분에서 문제가 있었다. direction *= speed;  를 밑에다가 선언해서 스피드가 적용이 안되었던거다. 

그래서 

void ApplyMovement(Vector2 direction)
{
    direction *= speed;
    rb.velocity = direction;        
}

이렇게 수정하고 실행해봤더니 잘 적용이 되었다.

코드의 흐름을 잘 이해하고 순서를 정하는것도 중요한 것같다.

 

그리고 인풋액션을 설정하고 적용하는데 계속 안되는 부분이있어 많이 헤맸는데

이것도 해설 강의를 보다가 원인을 찾은것같다.

이렇게 Default Scheme가 <Any> 로 설정되어있는데 

나는 KeyboardMouse 에다가 변경된 인풋액션을 저장해둔거라

이렇게 바꿔줘야 된다. 이거를 놓쳐서 스크립트는 모두 잘 적용됐는데도

계속 플레이어가 움직이지 않았던것같다. 

그리고 TIL적으면서 보니 'KeyboradMouse'라고 적혀있는걸 발견했다.

여기에선 오타가 문제가 없지만 스크립트 작성할때 오류가안나는 부분에서 저렇게 오타가 나버리면

그게 또 찾는데 몇시간이 소모되기에 다시한번 오타를 조심해야겠다는 생각이 든다.