앱 개발/Unity, C#
-
[Unity] Custom Control이 Library 창의 Project 탭에 안 뜰 때 [UI Toolkit]앱 개발/Unity, C# 2025. 1. 8. 09:05
스크립트로 VisualElement나 BaseField 등을 상속한 Custom Control를 작성했을 때, 해당 요소가 Library 창의 Project 탭에 안 뜨는 경우가 있다. 결론만 말하자면 UxmlFactory 속성이 없어서 해당 문제가 발생하며, 스크립트에 아래와 같이 UxmlFactory를 추가해주면 해결된다.// UxmlFactory needed for UI Builder integrationpublic new class UxmlFactory : UxmlFactory { } 끗~
-
[Unity][UI Toolkit] UI Toolkit 사용하면서 살짝 헤맨 부분들앱 개발/Unity, C# 2024. 12. 31. 10:00
오래 헤매진 않았고, 그냥 당연히 이렇게 하면 되겠지~라고 했다가 안 돼서 검색한 부분을 살짝쿵 모아보았다. 커스텀 컨트롤에서 Content Container 설정ui toolkit custom control content container add child in innercustom c# visualElement child나의 경우에는 커스텀한 Label Container을 만들 때와 grid View를 만들고 해당 뷰와 연결되는 리스트가 비어있을 때 보여줄 empty container을 만들기 위해 사용하였다.간단하게 VisualElement의 virtual 프로퍼티인 contentContainer을 override하면 된다.private VisualElement _contentContainer;pu..
-
[Unity][UI Toolkit] Localization 적용 방법앱 개발/Unity, C# 2024. 12. 31. 04:36
Unity 6부터는 binding을 본격적으로 지원하기 시작하면서 Localization을 쉽게 할 수 있다고 한다.하지만 나는 지금 2022 버전을 쓰고 있어, Localization하는 방법을 따로 찾아야 했다.UI Toolkit이 처음 도입되었을 때는 uxml을 검사하면서 text=""나 tooltip="" 등 localization이 필요한 부분을 변환하는 파이썬 코드를 짰었다. 스크립트를 돌리면 자동으로 지원하는 locale 별로 uxml 파일이 생성되도록 했는데, 유지 및 보수 측면에서 아주 BAAAAAD... 그래서 이번에 2022 버전에서 UI Toolkit을 다시 이용하게 되었을 때는 다른 방법을 찾아봤는데, 감사하게도 아래의 코드를 발견할 수 있었다.https://gist.github...
-
[Unity][Animancer] Layer pause / resume 하는 법앱 개발/Unity, C# 2024. 12. 13. 21:21
항상 생각하는 거지만 매뉴얼을 잘 보자.. Animancer - Playing AnimationsAfter you Download Animancer, you can add an AnimancerComponent to your model and control it with a script: Don't create an Animator Controller like you normally would. Animancer doesn't need them. Add a reference to the AnimancerComponent (let’s call itkybernetik.com.au private void OnPlayButtonClicked() { if (_play..
-
[Unity][UI Toolkit] uss에서 gap 옵션(child 사이 spacing) 구현하기 [USS]앱 개발/Unity, C# 2024. 11. 29. 20:37
uss는 css처럼 유니티 UI Toolkit에서 스타일을 적용시킬 때 사용한다.웹 형식과 비슷해 더욱 쉽게 디자인할 수 있다는 장점이 있지만,아직 개발 단계라 css에서 제공하는 속성 중 적용되지 않는 것(line-height, gap 등)이 있다는 것이 단점이다. 특히, 웹을 할 때는 css에서 flex 속성과 함께 gap 속성을 주면 자식 요소를 간단하고 깔끔하게 정렬할 수 있었는데유니티 uss에는 해당 속성이 없어서 자식의 margin을 하나씩 다 설정해줘야 한다. (아래의 css 코드처럼 말이다)div > *:not(:last-child) { display: block; margin-bottom: 20px;} 그런데 문제는, uss가 not 선택자는 물론 last-child 선택자도 ..
-
[Unity][UI Toolkit] uss에서 first-child, last-child 구현하기 [USS]앱 개발/Unity, C# 2024. 11. 29. 20:07
UI Toolkit -> UGUI (Nova) -> 다시 UI Toolkit으로 migration 하는 중...유니티 버전을 2021에서 2022로 업그레이드 하면서 UI Toolkit도 많이 안정되었구나 싶긴 했는데,그래도 여전히 기존 css에서 구현되는 기능이 다 사용 가능한 건 아니라 한계를 다시 체험하고 있다. 그 중에 제일 답답했던 것이 child 사이의 거리를 설정할 수 없는 것...웹을 할 때는 css에서 flex 속성과 함께 gap 속성을 주면 간단하고 깔끔하게 정렬할 수 있었는데,유니티 uss에는 해당 속성이 없어서 자식의 margin을 하나씩 다 설정해주는 방식으로 가야한다. 이 기능을 자동으로 해주는 스크립트를 작성하고 싶었다.그러기 위해서는 last-child를 알아야 했는데, 역시..
-
[Unity] 커서 모양 바꾸기 + 커서 회전하기 [How to rotate custom cursor texture]앱 개발/Unity, C# 2024. 2. 18. 00:43
역시 아래 블로그 내용과 같다. [Unity] 커서 모양 바꾸기 + 커서 회전하기 [How to rotate custom cursor texture] 다들 Unity에서 custom cursor을 지정하려면 Cursor.SetCursor(texture, hotspot, cursorMode)를 사용... blog.naver.com 같은 내용의 글을 두 번씩 업로드하는 게 좀 별로인 것 같아서, 앞으로 두 블로그를 분리해서 티스토리-개발용/네이버-취미용으로 사용할까 한다. 고로 앞으로 잘 부탁드립니다~~~ 다들 Unity에서 custom cursor을 지정하려면 Cursor.SetCursor(texture, hotspot, cursorMode)를 사용하면 되는 것 정도는 알고 있을 것이다. Unity UI를..