Table of Contents
Renderer에 접근하여 Material들을 동적으로 바꿔줘야 할 때가있다.
처음 생각한 간단한 방법으로는 적용되지않아서 찾아낸 정보를 기록한다.
틀린예시
for (int i = 0; i < rend.materials.Length; i++)
{
rend.materials[i] = new Material(maskedShader);
}
맞는예시
var rend = gameObject.GetComponentInChildren<Renderer>();
Material[] mats = rend.materials;
for (int i = 0; i < rend.materials.Length; i++)
{
mats[i] = new Material(maskedShader);
mats[i].CopyPropertiesFromMaterial(rend.materials[i]);
}
rend.materials = mats;
별거아닌거지만 이런걸로 시간을 날리면 많이 아깝다
'Unity > C#' 카테고리의 다른 글
[C#] Enum에 Contains인지 확인하기, String을 Enum으로 변환하기 (0) | 2022.07.29 |
---|---|
[Unity] Hitbox와 Hurtbox시스템 (0) | 2022.06.20 |
[Unity] JSON을 딕셔너리처럼 입출력하기 (0) | 2022.05.17 |
[Unity] Raycasthit.transform과 Raycasthit.collider.transform (0) | 2022.05.09 |
[Unity] 길찾기 에셋을 활용한 Wander구현 (0) | 2022.02.24 |