본문 바로가기
학원

24일차-2024-08-29

by 하타라시 2024. 8. 29.

 

 

컨트롤 + . 을 입력하게 되면 수정을 도와주는데, 여기서 엔터를 하였으므로 using UnityEngine.UI가 추가되었습니다.

 

상속 시에 부모와 자식이 같은 접근 지정자 혹은 엑세스 한정자 여야 합니다. 

 

짐벌락 현상으로 인해 축이 없어집니다.

유니티에서는 보정을 통해 렌더링이 안된다거나 하는 일이 없지만,

알아두면 좋은 지식이라고 생각합니다.

Dirext X에서 밑에 링크는 짐벌락 발생에 관한 글입니다.

https://m.blog.naver.com/jsjhahi/205951840

 

 

에디터 함수 

Reset 같은거

 

predicicate / 쉐이더 - BestFit, Metirc

 

 

 

Button은 UnityEngine.UI라는 namespace에 포함되어 있기 때문입니다.

 

 

Interface입니다. ICamera라는 것을 추상으로 구현하여야합니다. 

 

재정의를 하거나 구현을 하지 않는다면 에러가 뜨게됩니다.

 

MainCamera에서 CameraA , CameraB, CameraC를 초기화하고 , 실행시켜보면 ICamera를 상속 받았기 때문에 Test()가 실행됩니다.

첫 번째 라인에 뜨는 경고는 해당 형태로 컴포넌트를 추가해주면 해결 됩니다.

https://wlsdn629.tistory.com/entry/Unity-AddComponent#google_vignette

 

 

Interface와 abstract 큰 차이점은 Interface는 2개 이상 상속 가능하다는 점입니다. 

 

이런식으로 어떤 인터페이스인지 명시를 해주면 여러 개의 인터페이스에 알맞게 실행됩니다.

 

인터페이스를 통해 결합도는 낮추고 , 응집도를 올리는 행위가 가능해집니다.

추가로 캐릭터 A, B, C가 있다고 할 때, A와 B에는 공격이 가능하게하고, C에는 공격이 불가능하게 하고 싶을 때 유용하게 쓸 수 있을듯 합니다.

예를 들어 , IAttack을 A와 B에게만 주는 방식으로 입니다.

https://gxnzi.tistory.com/60

 

 

만일 Abstract와 Interface를 동시에 쓰려면, 순서에 따라 에러가 뜹니다.

 

추상 클래스를 2개 이상 상속해줄 수 없습니다.

 

 

Events를 활용해서 콤보시스템을 만들 수 있습니다.

우선 충돌의 시작과 끝을 만들어줍니다.

 

이런식으로 충돌이 끝났을 때, 재 충돌이 가능하게 끔하면, 버그의 여지가 없어질 듯합니다.

List에 넣는 것은 생각도 못했습니다,,,

 

Begin_Combo 부터 키 입력을 받을 수 있게 하고,  End_Combo이면 키입력을 그만 받습니다.

 

만일 콤보가 입력된다면 다음 동작으로 연결이 됩니다.

 

아닐 경우에는 콤보가 끊길 것입니다.

 

 

이것의 이해가 부족해서, 언젠가 이해한 후에 내용 추가하겠습니다.



추가로 유니티 애니메이션에 관한 내용입니다.

Draw Sword 1 > Draw Sword2로 넘어갈 때에 애니메이션에 Speed를 1.5로 넣었을 때에 문제가 발생합니다.

트랜지션에 Exit Time이나 Transition Duration같이 조절 값을 배속에 맞춰서 조절을 해줘야 한다고 이해했습니다.

해당 원인에 대한 이유는 추후 내용 추가 예정입니다.

 

transform.eulerAngles를 통한 회전입니다.

값을 넣으면 오일러각으로 치환해서 회전시켜줍니다.

즉 오일각을 쓴다는 것은 360도를 쓴다는 것입니다.

https://tintana4168.tistory.com/9

Quaternion의경우는 180도를 씁니다. -180 ~ 180을 0 ~ 360같은 범위이므로 문제는 발생하지 않습니다.

 

오일러각은 짐벌락 현상이 발생되고, Quaternion은 짐벌락 현상이 발생되지 않습니다.

https://handhp1.tistory.com/3

중요한건 transform.rotation의 정보가 Quaternion이라는 점입니다. 

 

eulerAngels에 넣을 때에도 오일러각을 Quaternion으로 치환하여 들어갑니다.

 

Rotate에도 Quaternion.Euler를 통해 또 다시 값을 치환해줍니다.

 

localRotation으로 주면 스스로 회전하게 됩니다.

 

 

그냥 rotation값을 주게되면 60을 이동하라고 했지만, 60 - 40해서 20으로 책정되게 됩니다.

즉 world 시점에서 보면 y는 60이 된것이 맞긴합니다..

 

부모의 위치는 local 기준 0,40,0입니다.

자식의 위치는 local기준 0,20,0입니다.

그러므로 로컬에는 0,20,0이 나오고 world로 보면 0,40+20 = 60,0이 찍히게 됩니다.

 

부모와 자식을 각각 회전을 시키게되면 해당 그림이 그려지게 됩니다. 

부모와 자식간의 간격 및 회전이 동일하게 됩니다.

해당 상태에서 자식의 회전까지 포함되면 해당 그림처럼 되는 것입니다.

 

이를 통해 태양과 지구 및 달의 관계를 표현한다던가 하면 재미있을 것 같습니다.

 

 

 

 

감사합니다.

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

28일차-2024-09-02  (2) 2024.09.03
25일차-2024-08-30  (0) 2024.09.02
23일차-2024-08-28  (0) 2024.08.29
22일차-2024-08-27  (0) 2024.08.27
17일차-2024-08-22  (0) 2024.08.22