728x90

UnityEngine 119

기간 무료 에셋! $40 레트로 도트 게임용 사운드 1000개 이상 무료 + 다양한 오디오 에셋들 모두 50%할인! (by David Dumais Audio)

이번 주 에셋 퍼블리셔 할인 및 무료 에셋 소식입니다. 이번 에셋 퍼블리셔는 David Dumais Audio 입니다. 데이비드 듀메스는 비디오 게임 전문 사운드 디자이너이자 작곡가입니다. 그는 또한 자신의 유튜브 채널에서 매주 사운드 디자인에 관한 동영상을 공개하고 있습니다. 유니티 에셋 스토어뿐 아니라, 게임 개발 에셋들 중 가장 인기 많은 카테고리 중 하나인 오디오/사운드 에셋들을 할인 중이니 좋은 기회로 활용할 수 있을 것 같습니다. 다음 주 목요일(2월 8일)까지 David Dumais Audio 의 다양한 에셋들을 유니티 에셋 스토어에서 50% 할인된 가격으로 구입할 수 있습니다. 에셋 할인 이벤트 페이지 https://prf.hn/click/camref:1011lvz7h/pubref:pub_..

[Unity] VR 기초, 방 탈출 게임 프로젝트 학습 코스 스크랩

흥미로운 학습 코스가 보여서 메모 겸 스크랩. VR 기초 학습 과정 중에 있는 방 탈출 프로젝트 코스. https://prf.hn/click/camref:1011lvz7h/pubref:learn_escaperoom/destination:https%3A%2F%2Flearn.unity.com%2Fproject%2Fvr-gico-hagseub-bang-talcul-peurojegteu%3Fuv%3D2020.3 VR 기초 학습: 방 탈출 프로젝트 - Unity Learn VR 기초 학습: 방 탈출 프로젝트에 오신 것을 환영합니다. 이 학습 프로젝트에서는 XR Interaction Toolkit 패키지에서 지원되는 기본적인 VR 인터랙션을 둘러보고 생성할 수 있습니다. learn.unity.com VR 개발 패키..

기간 무료 에셋! $139 팰월드? 스타일 풀3D 몬스터 30개 패키지 + 다양한 3D 에셋들 모두 50%할인! (by NOTFUN)

이번 주 에셋 퍼블리셔 할인 및 무료 에셋 소식입니다. 이번 에셋 퍼블리셔는 NOTFUN 입니다. NOTFUN 은 20개 이상의 디자인 상을 수상하고 3D 분야에서 10년의 경력을 보유한 팀입니다. NOTFUN은 프로토타입을 테스트하거나 게임을 더 빠르고 쉽게 채울 수 있도록 도와줍니다. 요즘 팰월드가 인기몰이 중인데, 타이밍 좋게 유사한 방향성의 에셋 제작사의 할인 이벤트를 진행하는 의도가 숨어있는 것 같긴 합니다. 실제로 스토어에서 에셋들을 둘러보면 그런 느낌이 조금 들 정도. 다음 주 목요일(2월 1일)까지 NOTFUN 의 다양한 에셋들을 유니티 에셋 스토어에서 50% 할인된 가격으로 구입할 수 있습니다. 에셋 할인 이벤트 페이지 https://prf.hn/click/camref:1011lvz7h/..

[Unity] Shader Keyword 셰이더 키워드로 동작 조건부 작성

셰이더 키워드를 활용해서 조건부 분기 동작을 작성할 수 있다. #if defined(_MY_KEYWORD) // 이 사이에 KEYWORD 가 활성화 돼있을 때 처리를 추가. #endif float4 pos = v.vertex; #if defined(_CUSTOM_INSTANCING) float4x4 insMatrix = _instancingData[svInstanceID]; pos = mul(insMatrix, pos); #endif 셰이더를 위처럼 작성한 뒤 C# 코드에서는 EnableKeyword 함수를 호출해서 KEYWORD 를 활성화한다. 셰이더 키워드 https://docs.unity3d.com/kr/current/Manual/shader-keywords.html#declaring-keyword..

[Unity] Editor SceneView 에서 카메라 조작하기 (fov, position, rotation)

// Editor Scene View 에서 마지막 활성 Scene View 얻어오기. SceneView sceneView = SceneView.lastActiveSceneView; // FOV(Field of View) 수정 sceneView.cameraSettings.fieldOfView = 45f; // 특정 Object Transform 으로 Scene View 의 Camera 맞추기 (가령 메인카메라) sceneView.AlignViewToObject(camera.transform); // 특정 위치(바운드)로 Scene View Frame 이동시키기 sceneView.Frame(new Bounds(new Vector3(10f,0f,10f), Vector3.one * 10f), false); //..

[Unity] Addressable.LoadAssetAsync() 동기/비동기 처리

Addressables 클래스를 활용한 리소스 동기/비동기 로드 및 캐싱 처리 샘플 코드. // 비동기 처리 public void LoadAsync(string address, Action callback = null) where T : Object { string key = address; if(_loadedAssets.TryGetValue(key, out Object res)) { callback?.Invoke(op.Result); return; } var asyncOperation = Addressables.LoadAssetAsync(key); if (!asyncOperation.IsValid()) { Debug.LogError($"asset load failed : {address}"); retu..

[Unity] C# Finalizer 와 Garbage Collector 동작에 대한 정리

C++의 소멸자(Destructor)와 C#의 Finalizer의 공통점과 차이점 공통점 문법적으로 ~Class() {...} 로 코딩 클래스 객체가 소멸될 때 리소스를 해제하기 위해 사용 차이점 C++ 의 소멸자는 delete myObj; 와 같이 명시적으로 호출 시기를 정할 수 있음. C# 의 소멸자는 C++와 구분하기 위해 Destructor대신 Finalizer로 부름. Finalizer는 개발자가 그 호출을 명시적으로 결정할 수 없고, Garbage Collection 메커니즘에서 호출. 좀 더 구체적으로, C# 클래스에 Finalizer 가 존재하면, 해당 객체의 생성자 호출시 Finalization Queue라는 QC 내부 큐에 레퍼런스 추가. 이후, Managed Heap이 차서 GC처리를..

[Unity] Flags Attribute

enum 타입 앞에 [Flags] 어트리뷰트를 붙이면 Inspector 에서 여러 개를 선택 가능한 Bit Flags 처럼 사용할 수 있는데, 이 때 유의해야할 점. None = 0 을 앞이 두어서 아무것도 선택되지 않은 타입을 두는 게 좋다. 각 Enum 값들은 1, 2, 4, 8, ... 처럼 2진수 bit flag 한 자리씩 값을 갖는 숫자로 지정해줘야 한다. (자연수로만 구성하면 하나를 선택했을 때 다른 값도 같이 활성화되는 오동작을 할 수도 있음.) 아래는 샘플 코드. [Flags] public enum ETest { None = 0, Option1 = 1

[Unity] ScriptableObject의 CustomEditor가 있을 때 저장이 안 되는 문제

특정 ScriptableObject 에 CustomEditor를 선언하고 작업할 때, ScriptableObject가 저장되지 않는 경우가 있음. CustomEditor를 정의하면 직접 적용도 해줘야 하기 때문에 그런데, 아래처럼 serializedObject.ApplyModifiedProperties(); 함수를 호출해주면 됨. [CustomEditor(typeof(MyScriptableObject))] public class MyScriptableObjectEditor : Editor { public override void OnInspectorGUI() { DrawPropertiesExcluding(serializedObject, new string[] { "m_Script" }); serializ..

[Unity] 드로우 콜 최적화 (Optimize DrawCall) 요약 정리

[유니티 TIPS] 유니티 최적화를 위한 필수 기본기! Batching 방법 소개 https://www.youtube.com/watch?v=w14yjBlfNeQ 0. 여러 개 메시(mesh), 여러 개 머티리얼을 : 최적화 없음 1. 여러 개 메시, 단일 머티리얼에서 UV좌표 나눠쓰기 : Batches 는 그대로, SetPass call 최적화 2. 동적 배칭 (Dynamic Batching) : Batches, SetPass Call 최적화. 동일 머티리얼의 작은 메시들은 버텍스 버퍼를 재활용 처리. 저가형 기기에서 성능을 최적화하도록 설계. (900개 이상의 버텍스 속성과 300개 이상의 버텍스를 포함하는 메시에 동적 배칭을 적용할 수 없음. 문서 참조.) https://docs.unity3d.com..

728x90
반응형