안녕하세요. 오늘은 저번 시간 Odin Inspector소개 이후 실제 사용후기 및 사용방법에 대해 말해보고자 합니다! 유니티 Odin InspectorOdin Inspector란? 오딘 인스펙터는 커스텀 에디터 코드를 한 줄도 작성하지 않고도 강력하고 사용자 친화적인 커스터마이징 에디터의 모든 워크플로 이점을 누릴 수 있는 Unity용 플러그인입니다.wlsdn629.tistory.com사용방법TabGroupTabGroup을 사용하여 가운데 사진과 오른쪽 사진처럼 인스펙터창이 깔끔하게 정리했습니다. 이렇게 인스펙터창을 정리하게 되면 다른 팀원들과의 의사소통도 더 빨라지며 작업 속도도 빨라지겠죠? TabGroup은 Tab으로 변수들을 묶어서 그룹은 관리할 수 있게 도와주는 기능입니다.[TabGroup("S..
해당 기능은 Meta에서 개발한 내용임을 알리고 시작합니다. AutoSet 활용하기: 컴포넌트 할당 간소화 이 글을 보신 다음부터는 두번다시 컴포넌트를 수동으로 할당하지 마세요!! AutoSet을 활용하여 개발 워크플로를 더욱 원활하게 만드는 방법에 대해 소개드리겠습니다! AutoSet이란? AutoSet은 동적 Attribute 유틸리티입니다. 필드에 AutoSet 어트리뷰트를 태그하면 필요한 컴포넌트를 게임오브젝트로부터 자동으로 가져와 할당하도록 지시할 수 있습니다. 컴포넌트는 게임 오브젝트, 게임오브젝트의 자식 또는 부모에서 가져올 수 있습니다. AutoSet 주요 이점 자동 할당: 인스펙터에서 수동으로 할당하는 지루한 반복 과정을 생략할 수 있습니다. 정밀성: 수동으로 컴포넌트 할당 시 발생할 수..
Muse란? AI 기반의 Creative Tool로, 유니티를 활용한 개발 경험을 도와 플랫폼을 빠르게 제작할 수 있도록 지원하는 도구입니다. Muse의 궁극적인 목표는 Unity 에디터에서 텍스트 프롬프트나 스케치와 같은 자연 입력을 사용하여 대부분의 요소를 제작할 수 있도록 지원하는 것이라고 합니다. AI 기반 크리에이티브 툴 Unity Muse 및 Unity Sentis 소개 | Unity Blog 유니티의 최상급 품질 및 호환성 표준을 충족하는 타사 패키지인 AI 검증 솔루션도 오늘부터 Unity 에셋 스토어에서 제공됩니다. Convai, Inworld AI, Layer AI, Leonardo Ai, LMNT, Modl.ai, Polyhive, Replica Studios, Zi blog.unit..
🎮 안녕하세요, 여러분! 🎮KapeHorn에서 케이프호너들이 지난 1년간 만든 BumpyR 프로젝트를 소개하게 되어 정말로 기쁩니다😍BumpyR을 개발하면서 여러 가지 재미와 감동을 경험했습니다. 중학생 때부터 꿈꿔왔던 VR 게임 개발의 꿈을 실현하는 과정과 그 꿈을 향한 여정이 매 순간 꿈만 같았고, 그로 인해 느껴지는 행복은 말로 표현하기 힘들었습니다. BumpyR을 개발하면서 케이프호너들이 로비에 모여 함께 이야기하고, 부딪히며, 컬러러쉬를 함께 즐겼던 모습은 잊지 못할 경험입니다. BumpyR을 통해 여러분도 제가 느꼈던 감동을 느끼실 수 있기를 바라며, VR 게임의 새로운 경험을 BumpyR에서 만나보시길 바랍니다!BumpyR 트레일러 영상🚗 BumpyR은 어떤 게임인가요?🚗 BumpyR은 여러..
Odin Inspector란? 오딘 인스펙터는 커스텀 에디터 코드를 한 줄도 작성하지 않고도 강력하고 사용자 친화적인 커스터마이징 에디터의 모든 워크플로 이점을 누릴 수 있는 Unity용 플러그인입니다. 개발자는 수천 줄의 커스텀 에디터 코드를 작성하고 유지 관리하는 대신 100개 이상의 빌딩 블록 속성으로 데이터 구조에 주석을 달아 전체 팀을 위한 사용자 친화적인 에디터를 빠르고 쉽게 빌드할 수 있습니다. Odin Inspector and Serializer | Improve your workflow in Unity Odin Inspector is a plugin for Unity that lets you enjoy all the workflow benefits of having a powerful, ..
DebugInspector DebugFinder Util Editor Window는 Unity 프로젝트 내의 스크립트 중에서 Debug.Log, Debug.LogWarning, 그리고 Debug.LogError 메서드를 사용하는 스크립트를 찾아주는 기능을 제공합니다. Debug을 찾아서 삭제해줘야 하는 이유 Debug를 삭제해주지 않고 빌드를 할 시 게임에 악영향을 미치기 때문입니다. 성능 저하: 게임의 실행 중에 추가적인 오버헤드를 발생시킬 수 있습니다. 로그 메서드가 빈번하게 호출되는 경우, 게임의 전반적인 성능에 영향을 줄 수 있습니다. 메모리 사용량: 메모리 할당을 발생시킬 수 있습니다. 문자열 연결이나 동적 문자열 생성과 같은 작업은 메모리 사용량을 증가시키며, 이로 인해 가비지 컬렉터가 더 자..
StaticBatching에 대해 Static Batching이 무엇인지 알아야 StaticBatchingUtility 클래스를 사용할 수 있어 간단하게 설명해 보겠습니다. Static Batching은 게임 오브젝트를 정적(Static)으로 일괄 처리하여 렌더링 성능을 향상하는 기능을 제공합니다. 즉, 여러 개의 정적(움직이지 않는) 오브젝트를 단일 메시로 결합하여 한 번의 Draw Call로 렌더링 할 수 있도록 하는 프로세스입니다. Draw Call을 줄이면 왜? 좋은지에 대해 짤막하게 언급해 둔 포스팅이 있어서 링크 달아두겠습니다. 2023.08.04 - [Unity/Assets] - 유니티 MeshBaker 유니티 MeshBaker MeshBaker란? 여러 개의 메시를 하나의 큰 메시로 결합하..
Multiton Pattern이란? 멀티톤 패턴은 클래스에 제한된 인스턴스(Instance) 집합을 확보하고 키(Key)를 기반으로 각각의 인스턴스에 액세스할 수 있는 지점을 제공하는 디자인 패턴입니다. 각 키는 단일 인스턴스에 매핑됩니다. 따라서 싱글톤처럼 인스턴스가 하나만 있는 대신 멀티톤은 각 키에 해당하는 인스턴스 수를 제어할 수 있습니다. Multition 사용방법 멀티톤을 사용하는 경우는 주로 각 개별 키(Key)에 대해 클래스의 단일 인스턴스가 필요한 경우에 사용됩니다.(예를 들어, Database, UI 등) 이렇게 구성하면 고유한 목적이나 기능을 담당하는 여러 개의 "단일" Instance를 가질 수 있습니다. public class ConfigurationManager { private..
유니티 에셋스토어에는 다양한 할인 이벤트를 진행한다는 것을 알고 계신가요? 2023.08.07 기준으로 Dev Days of Summer Sale과 Quick Start Bundle, New release discounts 할인 이벤트를 진행하고 있습니다! 할인 이벤트 중에서 상시 진행하는 Publisher of the Week라는 할인 이벤트에 대해 소개 드리고자 합니다! Publisher of the Week란? 매주 금요일 마다 유니티 에셋스토어에서 특정 퍼블리셔의 제품을 홍보해주기 위해 퍼블리셔의 제품 중 하나를 무료로 배포하는 시스템인 것 같습니다. 위 Magic swords VFX라는 제품을 무료로 배포함으로써 해당 퍼블러셔의 제품들은 아래에 홍보받게 됩니다. Publisher of the W..
Spawn NetworkBehaviour를 상속받는 오브젝트의 경우 위와 같이 2개의 분기로 나뉘며 호출 주기도 다르므로 주의해야합니다. DeSpawn NetworkBehaviour.OnNetworkDespawn은 NetworkBehaviour.OnDestroy보다 먼저 호출됩니다.
FirstOrDefault란?주어진 조건을 만족하는 시퀀스에서 첫 번째 요소를 검색하는 LINQ의 메서드입니다. 시퀀스란 저번 Dotween Pro에셋을 소개하면서 짧게 설명해봤습니다. 아래 링크를 참고해주세요! 2022.11.16 - [Unity/Assets] - 신나서 쓰는 Dotween Pro 에셋 사용법 신나서 쓰는 Dotween Pro 에셋 사용법Dotween이란? Dotween은 빠르고 효율적이며 안전성을 갖춘 애니메이션 엔진으로, C#에 최적화되어 있습니다. 높은 수준의 유연성과 커스터마이징을 유지하면서 단순하고 사용하기 쉬운 것으로 잘 알wlsdn629.tistory.com사용방법Predicate이 없는 경우- Predicate란? 사전적인 의미로는 "서술하다, 단정하다" 라는 뜻으로 사용..
EventTrigger 컴포넌트란? Event Trigger 컴포넌트는 다양한 UI 이벤트를 감지하고 이에 대응할 수 있게 도와줍니다. Event Trigger 컴포넌트를 사용하면 Pointer Click , Pointer 입력, Pointer 종료, Pointer Down, Pointer Up 등과 같은 여러 이벤트를 스크립트의 다양한 함수나 메서드에 바인딩할 수 있습니다. Pointer Events 종류 Pointer Enter : 이 이벤트는 포인터(마우스 커서 또는 손가락)가 UI 요소의 경계에 들어갈 때 발생합니다. Pointer Exit : 이 이벤트는 포인터가 UI 요소의 경계를 벗어날 때 발생합니다. Pointer Down : UI 요소에서 포인터를 눌렀을 때 발생하는 이벤트입니다. Poi..
MeshBaker란? 여러 개의 메시를 하나의 큰 메시로 결합하고 해당 오브젝트의 텍스처를 텍스처 아틀라스 및 텍스처 배열로 만드는 데 있어 도움을 주는 툴(Tool)입니다. 텍스쳐 아틀라스를 사용하지 않았다면 위 텍스쳐들은 독립적으로 존재하며 그 독립적으로 존재하는 개수만큼 드로우 콜이 발생하게 됩니다. 텍스쳐 아틀라스를 만들어주는 것 외에도 복잡한 장면에서 메쉬 찾기, 그룹화 및 결합 타일링 텍스처 처리 MeshRenderer / Skinnned MeshRenderer 병합 등 많은 기능들이 포함되어 있습니다. 꼭 자습서 및 공식 사이트를 참고해주세요! http://digitalopus.ca/site/mesh-baker/ Mesh Baker – Digital Opus If you care about ..
Render Texture을 만들면 Dimension, Size, Anti-aliasing, Enable Compatible Format, Color Format, Depth Stencil Format, Enable Mip Maps, Dynamic Scaling, Wrap Mode, Filter Mode가 존재하는 것을 확인할 수 있습니다. 이것들에 대해 간단하게 알아보고자 합니다. Dimension 2D : 가장 간단한 렌더 텍스처 유형은 2D 텍스처입니다. 평면 그림이나 사진과 매우 유사합니다. 픽셀 단위로 측정된 너비와 높이가 있습니다 2D Array : Cube : 렌더 텍스처가 큐브맵입니다. 큐브맵 렌더 텍스처는 동적 큐브맵 리플렉션에 가장 자주 사용됩니다 3D : 렌더 텍스처가 3D입니다. A..
유니티에서 Texture을 복사하는 방법에는 2가지 방법이 있습니다. Graphics.CopyTexture() Graphics.Blit() Graphics.CopyTexture()는 텍스처 간의 간단하고 효율적인 데이터 전송에 더 좋으며, Graphics.Blit()은 복사하는 동안 데이터에 셰이더를 적용하거나 텍스처 데이터를 크기에 맞게 조정해야 할 때 사용됩니다. Graphics.CopyTexture 주로 효율적인 데이터 전송에 초점을 맞춘 함수입니다. CPU에서 작업을 하지 않고 GPU에서 직접 작업을 수행하여 CPU와 GPU 간 데이터 전송으로 인한 성능 저하를 줄여줍니다. Graphics.CopyTexture()는 한 텍스처에서 다른 텍스처로 '정확한' 데이터를 복사해야 하는 상황, 즉 텍스처의..
VR게임을 만들 때 Player가 HMD을 착용했는지 착용해제 했는지 상황 트래킹이 필요한 경우가 있습니다. HMD Condition을 트래킹 하려면 OVRManager을 활용하면 됩니다. OVRManager 구조 HMDManager public class HMDManager : MonoBehaviour { public static HMDManager Instance { get; private set; } public bool IsHMDConnected { get; private set; } public bool IsHMDMounted { get; private set; } private void Awake() { if (Instance == null) { Instance = this; DontDestr..
프로젝트 소개 프로젝트를 하다보면 하이러키창이 복잡해지고 내가 원하는 게임오브젝트를 찾기가 힘들어지는 경우가 생기는데요. 그럴 때 하이러키창을 커스터마이징해주면 보기 편해지며 본인이 찾고자 하는 게임오브젝트를 찾기 수월해집니다. 오늘은 Editor 스크립트를 이용하여 하이러키창을 꾸며주는 스크립트를 구현해봤고 공유해보고자 합니다. 다운은 Git사이트에서 받으시면 됩니다. https://github.com/KimJinWooDa/HierarchyStyler 사용방법 하이러키창에 있는 게임오브젝트의 BackGround Color, Text Color, Icon을 커스터마이징 할 수 있도록 만들어봤습니다. 커스터마이징 하고자 하는 게임오브젝트를 선택한 후 에디터 상단 [GameObject]탭을 눌러준 후 [Ch..
오늘은 전편보다 3가지의 기능이 더 추가된 Debug.Log 유틸리티에 대해 소개해드리고자 합니다! 2023.07.27 - [Unity/Study] - 유니티 Debug.Log 유틸리티 파일은 위 포스팅에 들어가셔서 Git을 통해 다운로드하시면 됩니다! Git을 통해 업데이트 내용을 다루기엔 블로그 포스팅 내용과 겹쳐서 앞으론 Tistroy블로그에 패치 내용을 적어볼까 합니다! 추가된 내용 메서드 실행순서 디버깅 실시간 시간 디버깅 함수의 실행 시간 디버깅 메서드 실행순서 디버깅 DebugUtils.LogMethodCall(); 이 유틸리티 함수는 어떤 함수가 먼저 실행되는지 순서를 알고 싶을 때 사용하면 됩니다. 예를 들어 private void Start() { A(); C(); B(); } priv..
Debug.Log 유틸리티 만든 이유 팀 프로젝트를 하다 보면 팀원의 Debug.Log가 많아서 내가 작성한 Log를 찾기 힘든 경우가 종종 발생합니다. 그런 경우 주로, Log에 색을 입히든가 bold 체를 만들어 Text를 진하게 만들든가 해서 Log을 찾습니다. Debug.Log($"안녕하세요! {value}입니다!"); Log의 색을 red로 바꾸기 위해 위 코드처럼 Debug문을 작성하는데요. 원하고자 하는 Log가 한 가지면 위에 처럼 작성해서 상관이 없지만 원하는 Log가 여러 개일 경우 을 매번 치는 건 귀찮은 작업이 될 수 있다 판단했습니다. 그래서 Debug.Log 유틸리티 함수를 만들었고 소개해보고자 합니다! 아직은 기능이 몇가지 없지만 좋은 아이디어가 생각날 때마다 유틸리티 함수를 ..