안녕하세요Dictionary를 Linq로 호출하는 성능 테스트 중에 이상한 점을 발견하여 블로그로 적게 되었습니다.유니티 버전: 2022.3.44f1 foreach (var keypair in dictionary){ if (keypair.Value.GroupID == groupID) { // ... // }}데이터를 찾기 편하게 Dictionary를 사용하는 경우가 많은데, 개발하다 보면 Key가 아닌 값으로 찾아야 하는 경우가 종종 있습니다.이럴 때 위 코드처럼 foreach를 이용해서 찾게 됩니다. https://learn.microsoft.com/ko-kr/dotnet/api/system.collections.generic.dictionary-2.values?view..
안녕하세요.진행하는 프로젝트에서 UniTask를 사용했는데, UniTask를 어느 상황에서 좋았는지 공유해 볼까 합니다.https://github.com/Cysharp/UniTask GitHub - Cysharp/UniTask: Provides an efficient allocation free async/await integration for Unity.Provides an efficient allocation free async/await integration for Unity. - Cysharp/UniTaskgithub.com 좋았던 경우 주로 네트워크 혹은 패치 다운로드와 관련된 싱글턴 객체, 데이터 혹은 리소스를 관리해주는 싱글턴에서 매우 유용하게 사용했습니다. C#의 Task를 통해 다른 스..
VContainer 설치 Package Manager 좌측상단 [+] 버튼을 클릭해서 [Add package from git URL...] 메뉴를 클릭합니다. https://github.com/hadashiA/VContainer.git?path=VContainer/Assets/VContainer위 주소를 입력한 후 [Add] 버튼을 클릭하여 설치합니다. Unity Package Manager에 대해 자세한 방법은 매뉴얼 확인해보시면 됩니다.https://docs.unity3d.com/Manual/upm-ui.html Unity - Manual: Package Manager windowLoading SSH keys automatically on macOS Access the Package Manager w..
DI(Depencency Injection) 란? "하나의 객체가 다른 객체의 의존성을 제공하는 테크닉." "프로그램 디자인이 결합도를 느슨하게 되도록 하고 의존관계 역전 원칙과 단일 책임 원칙을 따르도록 클라이언트의 생성에 대한 의존성을 클라이언트의 행위로부터 분리하는 것"https://ko.wikipedia.org/wiki/%EC%9D%98%EC%A1%B4%EC%84%B1_%EC%A3%BC%EC%9E%85 의존성 주입 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 소프트웨어 엔지니어링에서 의존성 주입(dependency injection)은 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉이다. "의존성"은 예를 들어 서비스로 사용할ko.wikipedia.org 유지보수에 용이..
개요 안녕하세요. 작업하는 프로젝트 빌드가 너무 오래 걸려 짬날 때마다 확인하다 Unity에서 Spine Runtime Package에서 원인을 찾아 포스팅으로 남겨봅니다. Unity: 2022.1.15f1 Spine Package: spine-unity 4.0 2022-09-26 (Last updated: UTC - 2022 Sep 26) 발생 문제 빌드를 시작하면 `Begin` 이나 `BuildPreProcess` 단계에서 장시간 머물러있는 상황이었습니다. Unloading 5 Unused Serialized files (Serialized files now loaded: 0) Unloading 1364 unused Assets / (33.2 MB). Loaded Objects now: 5279. M..
1. Say Command에 Voice 추가 https://typecast.ai/ AI Voice Generator with Emotional Text to Speech The online AI voice generator that can turn your text into life-like speech. Over 400+ hyper-realistic voices. Create your content just the way you want it! typecast.ai 저는 블로깅을 위해 Typecast로 샘플을 만들었습니다. 이전에 만들었던 Say Command에 Voice Over Clip 프로퍼티에 만들어준 보이스를 추가했습니다. 일일이 추가해준 결과물입니다. 2. SFX 추가 (Play Sound..
샘플 이미지 다운로드 출처: https://alte.itch.io/uncle-mugens-backgrounds 제가 샘플로 사용한 이미지입니다. View 설정하기 상단메뉴 [Tools] → [Create] → [View]를 통해 캐릭터를 추가해 줍니다. 새로 추가한 배경을 Project View에서 Hierarchy View로 드래그 후에, View의 하위로 넣어줍니다. 이후에 하위로 들어간 이미지는 좌표를 초기화해주셔야 합니다. View에서 Ratio를 직접 입력하거나 선택하여 설정해 주고, View Size를 배경이미지 크기에 맞춰서 조절해 주세요. 실행되는 Flowchart의 Block에 Fade To View Command를 추가해 주세요. Block 가장 상단으로 드래그하여 순서를 조정하고, T..
새로운 캐릭터 추가 이전에 배운 대로 캐릭터를 더 추가했습니다. 캐릭터 Portrait을 추가하고 두 캐릭터가 대화하듯이 Say Command를 추가해 주었습니다. 현재까지 진행한 것 만으로는 두 캐릭터가 대화하듯이 만들어줄 수가 없네요. 말을 해야 할 캐릭터를 앞으로 나오도록 해주겠습니다. Portrait 앞으로 이동시키기 첫 번째 캐릭터가 말하기 전에 Portrait Command를 추가하고 Display를 Move To Front로 설정해 줍니다. Move To Front 만으로도 쉽게 해결되었습니다. 하지만, 역시 겹쳐있는 게 불편해 보입니다. 다음에는 위치를 분리시켜 보겠습니다. Portrait 위치 변경하기 두 번째 캐릭터가 등장 할 위치를 At Position값을 Right로 설정해서 오른쪽..