Unity
-
내일배움캠프 1일차 TIL - UGUI로 메뉴, 로고 만들기Unity/오늘 알아낸 것 2023. 8. 8. 20:25
3인 팀 프로젝트로 카드 짝 맞추기 게임을 만들게 되었다 내가 맡은 역할은 UI 및 애니메이션이다 로고는 전에 만들어두었던 타임라인으로 메뉴는 처음부터 만들었다 아직 트랜지션 애니메이션과 연결 못한 버튼들이 많다 게임씬, 밑에 카드들은 팀원들이 스프라이트 렌더러로 한다고 한다.. 내일쯤 받을수있을것같은데 받고나면 합쳐야한다 게임 종료 리절트 화면 마음에 좀 안드는거 같은데 어떻게 개선 할 수 있을까 일단 버튼들을 다 연결한 후 애니메이션을 만들어서 동적인 화면을 연출 해야겠다 지금은 재미없는 느낌이다
-
UI Toolkit Timeline (비공식 UITTimeline)으로 메뉴 만들어보기 - 2Unity/오늘 알아낸 것 2023. 8. 6. 20:22
지난 시간에 실행 했을때 나오던 에러는 깃 허브에 역시 나와있었다 https://github.com/mihakrajnc/UITTimeline 예상대로 UI Toolkit을 쓸때 1프레임 안쉬면 일어나는 문제였다 (UI Document가 아직 초기화 되지않았는데 실행해서 나오는 에러) UITTimeline 패키지안에 들어있는 DelayedPlayOnAwake 스크립트를 쓰거나 자신만의 트리거 로직을 짜라고 한다 PlayableDirector의 PlayOnAwake 체크박스를 해제 한 후 DelayedPlayOnAwake 컴포넌트를 추가한다 비공식이라 불편한 감이 좀 있긴 하지만 작동은 된다 쓸 일이 있을지 모르겠다 공식을 기다리는게 나을지도 모르겠다..
-
UI Toolkit Timeline (비공식 UITTimeline)으로 메뉴 만들어보기 - 1Unity/오늘 알아낸 것 2023. 8. 4. 20:48
UITTimeline은 UI Toolkit의 애니메이션을 Timeline으로 제어 할 수 있는 라이브러리이다 결론만 말하자면 작동이 안된다 사용할 UI Document 컴포넌트 (간단하게 사용 할 UXML) 를 가지고 있는 게임 오브젝트랑 같이 Playable Director를 심어야하고 (안심으면 null 뜬다...) 트랙 심을곳에 오른쪽 클릭을 하면 UITimeline 트랙을 심을 수 있다 심은 뒤 트랙 이름과 클래스 혹은 셀렉터 이름을 동일하게 매칭 시키면 해당 UI 객체를 타임라인에서 다룰수있다 해당 UI 객체의 속성의 애니메이션 클립을 만들어 타임라인으로 복합 애니메이션을 만들수있다 인스펙터창에서 속성을 오른쪽 클릭하면 Add Key로 추가 할 수 있다 추가 후 위쪽에 하얀 헤드를 움직여 인스펙..
-
타임라인으로 로고 씬 만들기Unity/오늘 알아낸 것 2023. 8. 3. 15:47
목소리 : 스파르타 내일배움캠프의 박종민 매니저님 타임라인을 배울 겸 간단한 로고씬을 만들어봤다 왼쪽 마우스 클릭을 누르면 스킵도 가능하게 하였다 스킵은 간단하게 마커를 이용하면 구현 할 수 있다 https://www.youtube.com/watch?v=oi4dxY0hIfw 마커 만드는 방법은 해당 동영상을 참고 하였다 using UnityEngine.Timeline;을 한 상태에서 Marker 클래스를 상속 받고 타임라인 GUI에서 오른쪽 마우스 클릭을 하면 상속 받은 해당 클래스의 이름이 뜨고 마커로 사용 할 수 있다 마커를 등록 한 뒤 Signal Track으로 markderIndex를 1씩 더해주기만 하면 스크립트로 제어하여 스킵 기능을 만들 수 있다 using UnityEngine; using ..
-
2023-08-02Unity/오늘 알아낸 것 2023. 8. 2. 20:47
예전에 UI 개발을 할때 구조를 이렇게 잡은적이 있다 버튼을 생성한다고 하면 버튼이 눌렸을때 실행되는 메서드를 델리게이트 체이닝 해둔다 그 후에 버튼이 눌리면 해당 델리게이트를 실행한다 하지만 이 방법은 한계점이 명확하다 델리게이트를 실행하면 체이닝한 모든 메서드가 한번에 실행되기 때문이다 메서드 실행이 끝났을때 다음 메서드를 순서대로 실행해야 하는 상황이 오면 따로 스크립트를 만들어서 작성하곤 했다 이 구조를 개선하기 위해서 생각을 좀 해봤다 실행될 메서드를 델리게이트 큐에 다 담아놓고 실행 종료를 체크 한 뒤 실행 종료가 됬을때 다음걸 실행한다 혹은 실행 종료를 체크하지 않고 메서드 끝에 Next() 같은 메서드를 호출해서 큐에 담긴 델리게이트를 실행한다 굳이 큐로 만들지않고도 유니티 타임라인을 써서..