본문 바로가기
Unity/Shader

[Unity Shader/테크니컬 아티스트를 위한 유니티 쉐이더 스타트업] 1일차 : 프로퍼티(Properties)

by 왹져박사 2023. 3. 15.
728x90

_Name : 기능의 변수명.

_를 붙이는 것이 필수는 아니지만, 외부에서 입력받았다는 것을 표시하기 위해 자주 쓰인다고 한다. 

"display name" : 화면에 나타나는 글자

number : 초기값

 

● Range 

 _Name ("display name", Range (min, max)) = number

Range : 슬라이더바 입력 형식. 최솟값과 최댓값 입력

 

 Float 

_Name ("display name", Float) = number

 

Int  

_Name ("display name", Int) = number

 

Color 

_Name ("display name", Color) = (number, number, number, number)

 

Vector  

_Name ("display name", Vector) = (number,number,number,number)

 

tex2D  

_Name ("display name", 2D) = "name(default texture)" {}

 

!중요한 부분! 끝에 세미콜론을 붙이지 않는다; 자동완성이 안되어 오타 주의

 

이를 Test로 작성해보고 Material에 적용해보면, 

    Properties
    {
        _TestRange ("Test Range", Range(0, 1)) = 0.5
        _TestFloat ("Test Float", Float) = 0
        _TestInt ("Test Int", Int) = 0
        _TestColor ("Test Color", Color) = (1, 1, 1, 1)
        _TestVector ("Test Vector", Vector) = (0, 0, 0, 0)
        _TestTexture("Test Texture", 2D) = "white" {}

        _Color ("Color", Color) = (1,1,1,1)
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
        _Glossiness ("Smoothness", Range(0,1)) = 0.5
        _Metallic ("Metallic", Range(0,1)) = 0.0
    }

다음과 같이 Inspector 창에 구현된다. 

 

https://docs.unity3d.com/kr/530/Manual/SL-Properties.html

 

ShaderLab: 프로퍼티(Properties) - Unity 매뉴얼

셰이더는 Unity의 머티리얼 인스펙터에서 아티스트의 설정을 위한 파라미터 리스트를 정의할 수 있습니다. 셰이더 파일의 프로퍼티 블록이 이를 정의합니다.

docs.unity3d.com

 

728x90