좌표, 좌표란 무엇인가?
월드 좌표 : 씬 전체 기준에서의 위치
로컬 좌표 : 부모 오브젝트 기준에서의 위치
라고 할 수 있다. 즉 유니티 화면상에서의 위치를 말한다고 할 수 있다.
벡터란 무엇이냐. 벡터는 오브젝트를 어디로 얼마나 움직일 것이냐를 나타내는 속성? 정보? 라고 볼 수 있다.
즉, 벡터가 가지는 요소는 방향과 크기이다.
오브젝트 A의 벡터에서 오브젝트 B의 벡터를 빼주면, 오브젝트 B에서 A를 바라보는 위치가 된다.
노말라이즈와 마그니튜드.
노말라이즈는 벡터의 방향만 살리고 힘을 초기화 하는 것이고,
마그니튜드는 벡터의 방향은 초기화 하고 힘만 살리는 방향이다.
벡터를 계산하기
벡터에 숫자를 곱하는건 아주 간단하다. 벡터의 힘에 숫자를 곱해서 적용하면 된다.
하지만 벡터와 벡터를 곱하는건 굉장히 복잡하다고 한다.
스크립트 상에서 다른 클래스를 호출할때는 스타트 보이드에 넣어주고, 자신의 것을 사용할때는 어웨이크에서 초기화 하고 사용한다.
추가기능
SendMessage : 다른 스크립트에서 해당 항목의 함수를 찾아서 불러오는 기능이다. 대신 연비가 안좋다고 볼수 있다. 왜냐? 해당 스크립트를 전부 한번 읽어내고 해당하는 함수를 뽑아오느느 것이기 때문이다. 그래서 SendMessage기능을 사용하려면 모노비헤이비어가 있어야만 가능하다. 대표적으로 유니티에서 사용하는 예는 애니메이션의 애니메이터 기능이 있다.
여기서 Tip. Ctrl + R + R 키를 누르면 스크립트의 네임스페이스를 변경할 수 있다.
GetKey는 해당 키를 누르는 동안 로직이 작동하는것이고
GetKeyDown은 키를 눌렀을때 로직이 작동
GetKeyUp은 키를 눌렀다 땠을때 로직이 작동하는 것이다. 즉, 캐릭터를 쭉 달려가게 하려면 GetKeyDown이 아니라 GetKey를 사용하면 되고, 객체 지향 프로그램으로 한다면 InputSystems를 사용하면 된다.
후기. 키보드 입력으로 진행하는 게임의 플레이를 작성할때는 키 매핑을 염두에 두고 진행한다 라고 한다면 반드시 InputSystem으로 해야 할거 같다는 생각이 들었다.