728x90

UnityEngine 122

[Unity] Dithering 셰이더 함수, Dither 노드, Dither thresholds array

Dither는 양자화 오류를 무작위화하는 데 사용되는 의도적 형태의 노이즈. 이미지에서 컬러 밴딩과 같은 대규모 패턴을 방지하기 위해 사용되거나, 화면 공간에 디더링을 적용하여 패턴의 균일한 분포를 보장하기 때문에 불투명한 오브젝트의 특정 픽셀을 Cliping 하여 투명하게 보이도록 처리할 수 있음. 불투명 렌더링 패스에서 투명하게 보이도록 처리하는데 유용. 아래 함수의 ScreenPisition 은 디더 패턴을 적용하는 데 사용할 스크린 좌표. void Unity_Dither_float4(float4 In, float4 ScreenPosition, out float4 Out) { float2 uv = ScreenPosition.xy * _ScreenParams.xy; float DITHER_THRESH..

[Unity] 밸브사의 포탈(Portal) 게임의 포탈 메카닉스 만드는 방법 (자료)

플레이어 카메라와 포탈의 카메라를 생성하고 조작해서 포탈에 해당하는 매쉬 렌더러의 머티리얼 텍스쳐를 교체하는 기법. 튜튜리얼 영상 https://www.youtube.com/watch?v=cWpFZbjtSQg GitHub 저장소 링크 https://github.com/SebLague/Portals/tree/master GitHub - SebLague/Portals: Portals in Unity Portals in Unity. Contribute to SebLague/Portals development by creating an account on GitHub. github.com 게임 개발에 필수적인 내용을 담는 명서들을 소개합니다. (유니티 최신 버전) https://link.coupang.com/a..

2024 설맞이 번들! 최대 95% 할인된 가격으로 21개 게임 에셋 전부가 $30

Lunar New Year's Day! Asset Store sale Event! 설을 맞아, 에셋 스토어 이벤트가 진행 중입니다! 기간이 넉넉하다 보니 에셋 소개 글도 좀 천천히 (사실 게을러서) 쓰게 됐습니다. 이번 설 기념 세일 이벤트는 갑진년(甲辰年), 용의 해를 기념해서 용 캐릭터로 마케팅을 하는 모습입니다. 두 개의 이벤트가 진행 중인데, 그 중 하나로 여러 에셋들을 한꺼번에 묶어서 저렴한 가격으로 한 번에 구입할 수 있는 번들 상품 이벤트입니다. 에셋 번들 이벤트 페이지 바로가기 (Asset bundle sale event) https://prf.hn/click/camref:1011lvz7h/pubref:lunar_bundle/destination:https%3A%2F%2Fassetstore..

기간 무료 에셋! $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처리를..

728x90
반응형