Unity 스크립팅 API - 머티리얼 사용법
이 문서는 Unity에서 C# 스크립트를 사용하여 머티리얼을 조정하는 방법을 다룹니다. 이를 통해 게임 개발자가 런타임 중에 머티리얼의 속성을 변경할 수 있는 방법과 다양한 메서드를 활용하는 방법에 대해 설명합니다.
머티리얼 조정
Unity의 머티리얼 에셋은 인스펙터 창에서 모든 파라미터에 접근할 수 있으며, 이를 통해 런타임 동안 머티리얼을 수정하거나 애니메이션화하는 것이 가능합니다.
머티리얼 메서드 요약
메서드 이름 | 용도 |
---|---|
SetColor | 머티리얼의 색상 변경 (예: 알베도 틴트 색상) |
SetFloat | 부동 소수점 값 설정 (예: 노멀 맵 멀티플라이어) |
SetInteger | 머티리얼의 정수 값 설정 |
SetTexture | 머티리얼에 새 텍스처 할당 |
각 메서드는 머티리얼 클래스 스크립팅 레퍼런스를 통해 찾아볼 수 있습니다.
중요한 참고 사항
- 이러한 메서드는 현재 셰이더 오브젝트에서 사용할 수 있는 프로퍼티만 설정할 수 있습니다. 예를 들어, 텍스처를 사용하지 않는 셰이더가 설정되어 있거나 셰이더가 바운딩되어 있지 않으면
SetTexture
호출은 효과가 없습니다. - 프로퍼티를 설정하기 전에 먼저 원하는 셰이더를 설정해야 합니다. 그러나 한 번 설정한 이후에는 동일한 텍스처나 프로퍼티를 사용하는 다른 셰이더로 전환하더라도 값은 보존됩니다.
- 이 메서드는 레거시 셰이더와 표준 셰이더 외에도 간단한 빌트인 셰이더(예: 파티클, 스프라이트, UI, 조명이 꺼진 셰이더)에서도 예상대로 작동합니다.
물리 기반 렌더링 머티리얼 유효성 검사
Unity의 물리 기반 렌더링(PBR) 모델을 사용할 때 머티리얼의 유효성을 검사하는 방법에 대해서도 알아야 합니다. 스크립트를 통해 머티리얼을 조정할 때 PBR의 특성을 고려해야 합니다.
활용 예제
예제 1: 머티리얼의 색상 변경하기
아래와 같은 C# 코드를 사용할 수 있습니다.
Material myMaterial = GetComponent<Renderer>().material;
myMaterial.SetColor("_Color", Color.red);
예제 2: 텍스처 동적 변경하기
런타임 중에 특정 조건에 따라 머티리얼의 텍스처를 변경할 수 있습니다.
Material myMaterial = GetComponent<Renderer>().material;
myMaterial.SetTexture("_MainTex", newTexture);
예제 3: 노멀 맵 멀티플라이어 설정하기
노멀 맵을 적용하여 표면의 디테일을 향상시킬 수 있습니다.
Material myMaterial = GetComponent<Renderer>().material;
myMaterial.SetFloat("_BumpScale", 1.5f);
이렇게 Unity의 C# 스크립트를 통해 머티리얼을 동적으로 조정함으로써 더 풍부하고 다양한 시각적 효과를 가지는 게임을 만들 수 있습니다.