본문 바로가기
학원

22일차-2024-08-27

by 하타라시 2024. 8. 27.

 

 

Physics.OverlapSphere를 쓰면 위치 , 반경을 나타냅니다.

이렇게 찾은 콜라이더들에 AddForce로 transform.forward로 앞으로 가게한더던가,, AddExplosionForce로 날려버린다던가 처리를 할 수 있습니다.

콜라이더의 gameObject에 접근도 가능하므로 이름을 불러오거나 하는 처리도 가능합니다.

 

Rigidbody에서 AddExplosionForce를 하게되면 터지는 연출이 됩니다.

터지는 힘, 터지는 위치, 터지는 것의 지름, 수직으로 터지는 힘, ForceMode가 들어갑니다.

 

AddForce를 하면 방향 + 힘, 그리고 ForceMode입니다.

 

https://makerejoicegames.tistory.com/152

 

private지만 [SerializeField]를 위에 줬기때문에 인스펙터 창에서 접근 가능합니다.

레이어가 4번과 6번 입니다. 그래서 int로 표현해도 되고, 이렇게 직접 선택해도 됩니다.

예전에 레이어 문제로 고생했던 적이 있어서 LayerMask.GetMask를 선호하고 있습니다.

 

레이를 쏘고나서 hit에서 레이어마스크 값을 확인합니다. 5만큼의 거리를 쏠 것입니다.

true일 경우 해당 오브젝트의 이름이 나오게됩니다.

 

hit의 point를 접근하면 충돌한 지점이 됩니다.

transform.position은 충돌한 오브젝트의 Position값이 됩니다.

 

 

https://www.mixamo.com/

믹사모를 통해 애니메이션을 처리하는 과정입니다.

Draw Sword 1은 검 뽑기1, Draw Sword 2는 검 뽑기2로 둘이 연결되는 동작입니다.

 

 

Has Exit Time은 애니메이션이 모두 실행된 이후에 파라미터가 넘어갑니다.

 

Exit Time은 애니메이션의 종료 지점을 설정합니다.

 

Transition Duration은 애니메이션이 모두 실행 된 이후에 지속시간입니다. 이게 0이라면 애니메이션이 끝나자마자 다른 애니메이션이 실행 될 것입니다.

 

Transition Offset은 애니메이션의 전환지점을 설정합니다.

 

 

Draw Sword 1 과 Draw Sword 2의 지점에 반씩 갈라진 곳이 있습니다. 해당 지점에서 애니메이션이 섞이기 시작하는데 , 섞이는 지점이 변하게 됩니다. 이런 형태로 자연스럽게 애니메이션 전환이 구동하는 것인듯 합니다.

 

Has Exit Time이 켜있는지 꺼있는지에 따라 Exit Time 조절할 수 있습니다.

 

Draw Sword 1이랑 Draw Sword 2가 프레임수가 15 / 23으로 차이가 납니다.

 

그런 상황에서 60%쯤으로 설정이 되면 , 훨씬 더 자연스러운 애니메이션이 연출됩니다.

Exit Time과 Transition Duration조절을 통해 설정된 것입니다.

https://docs.unity3d.com/kr/2018.4/Manual/class-Transition.html

 

 

 

또 다른 애니메이션 상황에 따른 대처에 관한 질문글을 가져왔습니다.

Transition duration과 Transition Offset을 0으로 준 경우입니다.

https://medium.com/devfallingstar/unity-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98-%EB%B3%80%ED%99%98-%EC%8B%9C-delay%EA%B0%80-%EC%83%9D%EA%B8%B0%EB%8A%94-%EB%AC%B8%EC%A0%9C-731914adbbad

 

 

partial을 활용하면 코드를 여러 개로 분리할 수 있습니다.

만약 한 쪽에만 partial을 주면 이런식으로 에러가 뜨게됩니다.

 

 

정상적으로 TestFunction이 실행된 모습입니다.

 

주의할 점이라면 Test_Print 즉 Print용도로 분리했던 곳에 using UnityEngine이 없다면,

에러가 발생하게 됩니다. 부분클래스라고 불리는 듯 한데 추후 수정할 예정입니다.

https://suspiciously-useful.tistory.com/33

 

 

this 타입 이름, 파라미터로 정의해주면 확장메소드가 됩니다. 앞에 확장이라고 붙습니다.

이러면 transform.FindChildByName으로 접근이 가능해집니다.

 

swordObject의 부모를 없애려면 DetachChildern을 사용하면 됩니다.

부모를 없앴다는 다른 부모에 옮기려는 것이기 때문에 옮기기전에 모든걸 초기화 해줘야합니다.

 

Position의 경우는 0,0,0으로 하고,

Rotation의 경우는 Quaternion.identity를 통해 0,0,0으로 설정해줍니다.

Scale은 1,1,1이 디폴트 값일것이니, 1,1,1로 줍니다.

그 이후 SetParent를 통해 부모를 설정해줍니다.

 

 

이 때, 만약 true를 준다면 world에 영향을 받으면서 부모를 설정하게 됩니다.

SetParent(부모) 이렇게 써도 디폴트 값은 true입니다.

 

 

감사합니다.

'학원' 카테고리의 다른 글

24일차-2024-08-29  (0) 2024.08.29
23일차-2024-08-28  (0) 2024.08.29
17일차-2024-08-22  (0) 2024.08.22
16일차-2024-08-21  (0) 2024.08.21
15일차 - 2024-08-20  (0) 2024.08.20