목록게임프로그래밍 (83)
bdfgdfg
Reflection C#에서는 내가 정의한 클래스를 통해 만든 객체에 접근해보면. 내가 만들지 않은 다른 여러 기능들이 존재한다. 이것은 C#에서 만드는 모든 객체들은 모두 위 그림처럼 object클래스에서 파생되서 나온 것이기 때문. 여기서 주의깊게 봐야할 것은 GetType. 이녀석은 Type이란 자료를 가져온다. 이것으로 할 수 있는게 매우 많은데 클래스의 이름이라던지 해당 클래스내의 멤버라던지등 모든 정보를 가져올 수 있다. 이런식으로 클래스안의 내부 멤버에 접근할 수 있다. 참고로 Flag란 이름에서 알 수 있듯이. 여러 옵션을 찾기위해 |(or연산)을 해준다. System.Reflection.FieldInfo[] field = type.GetFields(System.Reflection.Bind..
Unity의 Animation은 Animator 컴포넌트를 통해 사용가능. Animator에 애니메이터 Controller를 넣어줘야하고. 또 플레이어가 어떻게 애니메이션을 할지 컨트롤러에서 설정해줄 수 있다. 위와같이. 애니메이션을 넣어줄 수 있는 베이스 레이어가 존재하고. Entry는 시작부분. 처음에는 Run이란 애니메이션과 연결되어있으니 RUN 애니메이션을 진행. 하지만 RUN애니메이션만 진행할것은 아니기에. 애니메이션을 적절히 섞을 수 있는 Blend Tree를 이용. 블렌드 트리를 만들어주고 해당 노드가 만들어지면 더블클릭해 블렌드 트리에 넣을 애니메이션을 설정할 수 있는데. RUN과 WAIT애니메이션을 두개 사용한다고 할 때, 파라미터를 float으로 넣어주고 WAIT은 0, RUN은 1이라..
World 좌표계 vs Local 좌표계 World 좌표는 세상(유니티 Scene안의 세상)을 중심으로의 위치를 의미. Local 좌표는 어느 오브젝트를 기준으로 한 좌표. 여기에 Screen(스크린) 좌표도 추가가 되는데. 우리가 화면에서의 좌표는 x,y 좌표밖에 존재하지 않는다. 그렇기에 void Update() { Debug.Log(Input.mousePosition); } 위와 같이 코드를 작성해보고 Screen에 마우스를 가져다 대보면. 참고로 유니티 Screen의 좌표계는 좌하단으로 갈수록 0,0에 가깝고 우상단으로 갈수록 x, y값이 증가한다. 그리고 Screen좌표이기에 x,y좌표값만 증가, 감소하고 z좌표는 변함이 없는 것을 알 수 있다. 카메라에 접근하면 viewportPoint란것도 ..
Raycasting 물리적인 광선을 쏘아내 충돌을 할 수 있게한다. Physics라는 물리클래스안에 Raycast가 존재하고. 이것은 레이캐스트를 어느 시작점이 주어지면 그 시작점을 기준으로 내가 원하는 값을 넣어 그 방향을 향해 레이를 쏠 수 있다. 매우 많은 인자를 받을 수 있지만, 그 중 매우 간단한 인자버전. 위에서 말한 시작점과 방향값을 넣어줄 수 있다. 그리고. 이렇게 레이를 쏠 때, 어느 물체와 충돌했는지 안했는지를 판별할 수 있게 bool값을 리턴한다. 물론 레이를 맞은 대상의 정보를 가져올 수도 있다. 참고로 out은 c#에서 내가 넘긴 인자에 결과값을 저장한다는 의미. 저 RaycastHit에 인자를 넘겨주기 위해. RaycastHit 변수를 만들고 넘겨준다. void Update() ..