셰이더 키워드를 활용해서 조건부 분기 동작을 작성할 수 있다.
#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-keywords
Material 의 Enable/Disable Keyword 메소드
https://docs.unity3d.com/ScriptReference/Material.EnableKeyword.html
게임 개발에 필수적인 내용을 담는 명서들을 소개합니다.
<유니티 교과서 개정6판>(유니티 최신 버전) 구입 링크
https://link.coupang.com/a/be3P0t
<리얼-타임 렌더링(REAL-TIME RENDERING) 4/e> 구입 링크
https://link.coupang.com/a/8VWas
<이득우의 게임 수학:39가지 예제로 배운다! 메타버스를 구성하는 게임 수학의 모든 것> 구입 링크
https://link.coupang.com/a/9BqLd
유니티 에셋 스토어 링크
https://assetstore.unity.com?aid=1011lvz7h
(링크를 통해 도서/에셋 구입시 일정액의 수수료를 지급받습니다.)
728x90
반응형
'유니티 엔진 (Unity Engine)' 카테고리의 다른 글
[Unity] VR 기초, 방 탈출 게임 프로젝트 학습 코스 스크랩 (0) | 2024.01.30 |
---|---|
[Unity] Inspector Custom Editor 에 추가 버튼, 삭제 버튼 추가 (0) | 2024.01.15 |
[Unity] Inspector 에 Addressable AssetReference 배열 노출시키기 (0) | 2024.01.15 |
[Unity] Editor SceneView 에서 카메라 조작하기 (fov, position, rotation) (0) | 2023.12.07 |
[Unity] Addressable.LoadAssetAsync() 동기/비동기 처리 (0) | 2023.12.04 |
[Unity] C# Finalizer 와 Garbage Collector 동작에 대한 정리 (0) | 2023.12.01 |
[Unity] Flags Attribute (0) | 2023.11.30 |