본문 바로가기

Unity/Articles

Unity: 호출하는 스코프에 따라 달라지는 값, Time.deltaTime 유니티 스크립팅은 게임오브젝트에 컴포넌트를 붙이고, 유니티 코어로부터 들어오는 이벤트를 기반으로 동작을 처리하며 행동을 디자인 합니다. 가장 많이 사용되는 예시로는 Awake, Start, Update, FixedUpdate 등이 있는데요. MonoBehaviour 클래스를 상속받고 이 함수를 구현하면, 유니티 코어가 인식하여 해당 함수를 실행시켜 줍니다. 본 아티클에서는 이 함수들 중, Update와 FixedUpdate에 대해서 얘기해 볼까 합니다. Update Update 함수는 매 프레임 호출됩니다. 게임의 타겟프레임이 60fps라면, 1초에 60번 호출될 것이라고 기대할 수 있습니다. 물론 이 Update 루프에서의 작업이 1초 / 60 의 수치인 0.0166667 초 보다 오래 걸렸다면 1초에.. 더보기
Unity: 플러그인에 사용하기엔 계륵같은 존재, UI Toolkit 작년 3,4분기에 열심히 개발하던 AssetLens라는 이름의 종속성 탐지 기능이 중점인 플러그인이 있습니다. 지금도 작게나마 관리중이지만, 플러그인의 특성상 다양한 버전의 유니티 에디터를 지원해야하는 어려움에 부딪혀 점차 개발속도가 느려지다 끝내 소소한 버그픽스만 진행하고 있습니다. 가장 큰 문제는 한 번만 작업하고도 여러 버전의 에디터를 동시에 지원하고 싶은 욕심이 불러온 복잡한 개발 파이프라인입니다. GitHub - seonghwan-dev/AssetLens: Asset Lens : Unity asset reference management utility working in background. 에디터 백그 Asset Lens : Unity asset reference management utili.. 더보기
Unity: 플랫폼 별 미리 지정된 Path 유니티 에디터 Application.dataPath : 프로젝트경로/Assets Application.persistentDataPath : Appdata/LocalLow/${CompanyName}/${ProductName} Application.streamingAssetsPath : 프로젝트경로/StreamingAssets 윈도우 스탠드어론 Application.dataPath : .exe 경로/exe_Data Application.persistentDataPath : Appdata/LocalLow/${CompanyName}/${ProductName} Application.streamingAssetsPath : .exe 경로/exe_Data/StreamingAssets 더보기
Unity: FormerlySerializedAs For Shader 셰이더 프로퍼티 이름 변경시 데이터 보존 방법 유니티에서는 FormerlySerializedAs라는 Attribute를 지원합니다. 유니티 에디터는 어떤 인스턴스(프리팹, 씬)를 저장할 때, 필드의 이름을 기준으로 데이터를 저장합니다. 만약 어떤 변수의 이름을 수정한다면, 이전에 작업해 두었던 수치 정보를 잃게됩니다. FormerlySerializedAs는 이런 상황으로부터 도움을 줄 수 있습니다. https://docs.unity3d.com/ScriptReference/Serialization.FormerlySerializedAsAttribute.html Unity - Scripting API: FormerlySerializedAsAttribute Success! Thank you for helping us improve the quality of.. 더보기
Unity: 2022.1 IL2CPP 제네릭 공유 개선점이 가지는 의미 Feature preview: IL2CPP Full Generic Sharing in Unity 2022.1 beta | Unity Blog Feature preview: IL2CPP Full Generic Sharing in Unity 2022.1 beta | Unity Blog This code demonstrates the expressiveness of generic virtual methods. In other words, we can send data of any type (the “message”) from any class that implements the IManager interface to any class that implements the IReceiver interface. W.. 더보기
Unity: 헷갈리기 쉬운 에디터 개념. Edit Mode, Play Mode 유니티에디터는 빌드과정을 거쳐 플레이하는 것과 유사하게 빠르게 플레이 테스트를 해 볼 수 있는 Play Mode를 지원합니다. 에디터 상단에 위치한 재생, 일시정지, 다음프레임 심볼의 버튼들이 Play Mode로 넘어가도록 도와주는 주인공들입니다. 요즘에서야 게임엔진이라면 당연히 갖춰야 할 기능으로 받아들여지지만, 초기의 게임 엔진에서는 그렇지 못했고 컴파일과 빌드를 거쳐서야 플레이테스트를 해볼 수 있었습니다. Edit Mode : 유니티 에디터에서 PlayMode 상태가 아닐 때 (평상시) Play Mode : 유니티 에디터에서 Play 중인 상태 (실행 테스트) 에디터에서 빌드를 거쳐 스탠드어론으로 컴파일 된 후 실행되는 것은 플레이모드가 아닙니다. 에디터와 런타임은 대립되는 위치에 있는 용어가 아닙.. 더보기
Unity: 유니티에서 Flutter처럼 작업하기 - uiwidgets 유니티 엔진에서 사용할 수 있는 UI 프레임워크는 다음과 같습니다. 공식 지원 시스템 IMGUI : 런타임 사용에 적절하지 않은 코드기반의 GUI 시스템 uGUI : 가장 점유율이 높은 기본 내장 UI 프레임워크 UI Toolkit : 웹과 유사한 uxml/uss 방식의 UI 프레임워크 에셋 스토어 플러그인 NGUI : 에셋스토어에서 유료로 판매되는 UI 에셋. uGUI가 대중화되기 전에 주로 사용 https://docs.unity3d.com/Manual/UI-system-compare.html Unity - Manual: Comparison of UI systems in Unity Creating user interfaces (UI) Comparison of UI systems in Unity Unit.. 더보기
Unity: 모바일 MMORPG 프로젝트 카야 Project Kaya 살펴보기 차례 서론 설치 프로젝트 구성 - 씬 (로비, 무브먼트) - 캐릭터 (정보, 본, 무기) - 셰이더 그래프 (PBR, PBR Skin, Hair) - 렌더피쳐 (캐릭터 가려지는 부분 그리기) - 플래너 리플렉션 (바닥 반사) - VFX 그래프 (이펙트 파티클) 좋았던 점 아쉬운 점 바라는 점 서론 2020년 유나이트 서울에서 발표된 세션에 등장했던 프로젝트 카야가 베일을 벗고 유니티코리아 GitHub 리포지토리에 공개되었습니다. 유니티 코리아 오피스 10주년을 기념하여 누구나 내려받아 실행시켜 볼 수 있게 오픈한 점이 고무적입니다. 메인 캐릭터로 사용된 '카야'는 협력사에 외주발주를 통해 실제 게임 프로덕션 과정에 가깝게 제작되었다고 알려져, 적당한 더미를 사용해 실무에 큰 효용성이 없던 다른 테크 데모.. 더보기