개인 과제 해설 영상
유니티 게임개발캠프 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'라고 적혀있는걸 발견했다.
여기에선 오타가 문제가 없지만 스크립트 작성할때 오류가안나는 부분에서 저렇게 오타가 나버리면
그게 또 찾는데 몇시간이 소모되기에 다시한번 오타를 조심해야겠다는 생각이 든다.