학원

53일차 - 2024-10-02

하타라시 2024. 10. 3. 06:54

 

 

GUID의 정보를 얻는 방법입니다. 우선 에디터 폴더안에 넣고, using UnityEditor까지 넣어줍니다.하지만 함정이 있습니다.

 

static 상태가 아니라면 나오지 않습니다.static을 주면 옵션이 생기게 됩니다. 

 

 

Debug.Log가 출력된 모습입니다.

 

 

 

위에부터 선택한 오브젝트가 없다면 실행이 되지 않습니다. 

GameObject와는 다른 개념입니다.

 

game object와 object로 구분이 됩니다.

 

 

 

선택한 오브젝트의 경로를 찾는 과정입니다. 

 

path에 guid를 가져옵니다.

 

결과입니다. 이렇게 하면 매번 meta파일을 열어서 확인할 필요가 없습니다. Console에서 값을 보면 됩니다!

 

 

meta파일의 guid입니다 .

meta파일에 있는 것과 동일한 내용이 출력됩니다.

 

마지막으로 해당 클립보드에 복사하는 코드입니다.

guid가 복사된 모습입니다.

 

 

공격 동작이 왼쪽 손 , 오른쪽 손, 왼쪽 발, 오른쪽 발로 구성되어있습니다.

그러므로 LeftFoot, RightFoot , LeftHand, RightHand로 위치를 잡게 됩니다.

 

이런식으로 Max를 정의해주면

for문을 돌때에 for(int i = 0; i < (int)PartType.Max; i++) {} 이런 활용이 가능합니다.

 

4가지 공격들의 포지션을 찾게됩니다.

부모를 제거하고 위치를 초기화합니다.

이제부터 재밌는 부분입니다.

 

 

이것은 임시로 이름을 바꾼거여서 에러가 뜨지만,,넘어가겠습니다.

 

Test에 OnTrigger에 OnTriggerEnter를 넣어버리게 됩니다. 

이게 가능한 이유는 형식이 똑같이 때문입니다!!!!!

 

아까 만들었었던 LeftHand 부터 RightFoot까지 부모를 찾아서 넣어주면 끝입니다.

 

 

 

 

충돌 시에는 AnimationEvent의 정보를 넘겨주게 됩니다. 

int e 이렇게 하면 int파라미터 값만 넘어오지만 AnimationEvent를 넘겨버리면 모든 정보를 넘기므로 좋습니다.

 

 

충돌체에 관한 문제입니다. Collider other은 피격당한 물체만을 가져오게됩니다.

그렇다면 피격을 유도한 물체를 가져오는 법이 문제가됩니다.

 

LeftHand, RightHand, LeftFoot, RightFoot중에서 충돌한 것은 collider 안에  enabled인 것을 넣어주므로 충돌체의 정보를 가져오는 것입니다. 결국 내부에 어느정도 기록이 되긴하겠지만, 이런식으로 정보를 가져오므로 굉장히 좋은 방식이라고 생각합니다. 왜냐면 예전에 관련 문제로 미니 프로젝트에서 충돌체 문제로 고생했던 추억이 떠오르기 떄문입니다....

 

 

 

추가로 공격을 할 때에 Cinemachine Impulse Source를 통해 자연스러운 연출을 해야하는데,,, 직접하려니 잘안되서 슬픕니다.

Warp라는 것을 구현할 때에 2D인 화면에서 3D의 좌표를 얻어야합니다.

https://mystory2.tistory.com/13

설명을 해주시기로는 IA-VS-RS-PS-OM 이정도까지 이해하는 것을 목표로 해보고있는데 잘모르것습니다..

앞으로는 GPT가 짜준 코드를 이해를 하면서 활용해야겠습니다.

 

 

Projection는 3D 공간의 좌표를 2D화면으로 투영하는 과정

UnProjection는 2D화면 좌표를 다시 3D 공간 좌표로 변환하는 과정

Picking는 화면 상의 객체와 상호작용하는 것. 레이케스트 활용
Raycast는 특정 방향으로 광선을 쏘는 형태

SS Picking는 2D인 화면에서 3D의 공간 정보를 찾는 것입니다.

 

 

.....

 

 

조만간 내용 보충을 하겠습니다.

 

 

 

 

 

감사합니다.