728x90

UnityEngine 117

[Unity] 유니티 엔진으로 툴 제작 시 에디터 클릭 이벤트 후킹하기

Unity Engine 에디터 내에 Scene View 를 활용해서 툴을 만들 때, 마우스 좌클릭을 기본 도구에서의 선택 도구 외에 다른 용도로 사용하려고 하면 Unity Engine 의 Event 를 핸들링 할 필요가 있다. Event.current 가 에디터의 UnityGUI 이벤트가 되는데, 이 이벤트가 마우스 좌클릭일 때 Use() 를 호출해서 사용처리 해버리면 선택 도구로 작동하는 것을 후킹할 수 있다. if (Event.current.type != EventType.MouseDown) return; if (Event.current.button != 0) return; Event.current.Use(); // 툴에서 원하는 동작 처리. Event.current.button 의 값은 마우스 버튼..

[Unity] Texture2D와 RenderTexture의 핵심 차이

Texture2D와 RenderTexture의 핵심적인 차이는 다음과 같다: 사용 목적 Texture2D: 2D 이미지 데이터를 저장하고 사용하는 데 사용된다. 주로 텍스처 매핑, UI 요소, 그림 및 사진과 같은 이미지 표현에 사용된다. RenderTexture: 렌더링 결과를 저장하기 위한 특수한 유형의 텍스처이다. 주로 카메라의 렌더링 결과를 저장하거나, 이미지 처리, 후처리 효과, 텍스처 생성 및 수정에 사용된다. 렌더링 가능 여부 Texture2D: 렌더링 가능한 텍스처가 아니며, 즉 렌더링 파이프라인에 직접 사용할 수 없다. RenderTexture: 렌더링 결과를 저장하기 위한 텍스처로서, 렌더링 파이프라인에 직접 사용할 수 있다. 메모리 할당 방식 Texture2D: CPU 메모리에서 생성..

[Unity] 최초 실행되는 UnityMain 함수 만들기 (RuntimeInitializeOnLoadMethod 상세 순서 설명)

유니티 엔진에서 초기화를 하고싶어 유니티는 BuildSettings의 Scenes In Build 목록에 셋팅된 0번 인덱스 씬으로 시작하게 됨. 이 때 씬을 로드하면서 초기화도 같이 수행하게 되는데, 씬에 올라간, 씬의 Hierarchy 목록의 GameObject 들의 Awake와 Start의 호출 순서가 보장되지 않음. Awake, Start 호출 순서가 보장되지 않더라도 초기화 처리는 가능하겠지만, 어떤 GameObject 들의 초기화보다도 먼저 초기화 처리를 하고싶은 경우가 있을 수 있음. 이 때, [RuntimeInitializeOnLoadMethod] 어트리뷰트(Attribute)를 활용해서 특정 static 함수의 속성을 설정해서, 게임이나 앱 실행 후 가능한 빠른 시점에 호출되도록 핸들링 ..

[Unity] 유니티 셰이더 코드에서 _MainTex_TexelSize 변수의 정체는?

셰이더 코드는 참조하다보니 _MainTex_TexelSize; 라는 변수를 선언만 하고 바로 사용하는 모습들을 종종 보게 됨. 내장 변수인 것 같은데, 어떤 값을 담는지 설명은 검색해도 보이던데 어디서 어떻게 생성해서 값을 할당 해주는 것인지에 대한 내용이 잘 보이지 않더라. 일단 이 변수는 유니티 엔진 내부에서 생성 및 할당해주는 변수는 확실하고, 관련 설명은 아래 유니티 공식 문서에서 서술하고 있음. 주의해야 할 부분은, _MainTex_TexelSize 라는 이름의 변수명을 생성해주는 것이 아니고, {TextrueName}_TexelSize 라는 이름으로 생성해준다는 것. 셰이더를 작성할 때 보통 _MainTex 프로퍼티를 생성하기 때문에 결론적으로 _MainTex_TexelSize 라는 변수가 만..

[Unity] 셰이더 처리 후 텍스처 테두리가 번져 보이는 문제

간단한 가우시안 블러(Gaussian Blur) 코드를 올리고 보니 테두리의 색상이 번져있는 것을 제보를 받고 알게 됨. 원인은, 가우시안 블러 셰이더 처리 중, UV 값이 0보다 작거나 1보다 큰 영역까지 침범했기 때문. [Unity] 간단한 가우시안 블러(GaussianBlur) 셰이더 코드 텍스처에 가우시안 블러 처리를 하면 요런 결과물이 생성됨. 아래는 머티리얼 속성. Blur Radius 를 조절해서 Blur 강도를 조절할 수 있다. 간단한 가우시안 블러 셰이더 코드 Shader "Custom/GaussianBlur" { tistory.wonsorang.com 아래는 침범된 코드 스니펫. // Horizontal blur pass for (int x = -5; x

[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 개발 패키..

728x90
반응형