[유니티] 코드로 MeshRenderer 컴포넌트 색상 바꾸기
자식 오브젝트의 컴포넌트에서 MeshRenderer 컴포넌트를 배열에 담아 설정한 색으로 변경.
// 색상 정보를 저장하는 변수선언
[SerializeField] Color tankColor;
void Start()
{
//자식 오브젝트의 컴포넌트에서 MeshRenderer 컴포넌트 찾기 (배열저장)
MeshRenderer[] renderers = GetComponentsInChildren<MeshRenderer>();
//저장된 개수만큼 반복하면서 색상 값을 저장한 값으로 선언
for (int i = 0; i < renderers.Length; i++)
{
renderers[i].material.color = tankColor;
문제. 자식오브젝트의 [0]번째만 값이 담긴다 -> 다 담기게 할 수도 있나?
> > > 해결. renderers[ ].materials[ ].color
// 색상 정보를 저장하는 변수선언
[SerializeField] Color tankColor;
void Start()
{
//자식 오브젝트의 컴포넌트에서 MeshRenderer 컴포넌트 찾기 (배열저장)
MeshRenderer[] renderers = GetComponentsInChildren<MeshRenderer>();
//테스트 확인
//renderers[0].materials[1].color = tankColor;
for (int i = 0; i < renderers.Length; i++)
{
for (int j = 0; j < renderers[i].materials.Length; j++)
{
renderers[i].materials[j].color = tankColor;
}
}
참고
유니티(Unity) Materials 일부 변경하기
위 사진 같이 Mesh Renderer의 Materials에 요소가 1개밖에 없는걸 다음 같이 materials length를 늘려주고 materials[0]에 다른 material을 추가해야하는 일이 생겼다. 애초에 materials length를 2로 만들고 materials[0]
eunujini.tistory.com
유니티 - [오브젝트 색 변경]
▣ GetComponent().material.color = Color.red; 로 Mesh Renderer컴포넌트에 Material를 접근하여 색 변경, Color. 로 접근하게 되면 여러 색으로 변경 가능 ▣ 컴파일 저장후 플레이버튼을 누르고 닿게 되면 색 변경
makerejoicegames.tistory.com
스크립트를 통한 오브젝트 색상.컬러 변경하는 방법(유니티 2D 기초강좌) - Unity & C# Script(Object Chan
특정 키보드의 키를 눌렀을때 해당 게임 오브젝트의 색상을 바꿀 수 있도록 스크립트를 통해 변경할 수 있습니다. 유니티에서 제공하는 색상은 11가지(Black, Blue, Cyan, Gray(Grey), Green, Magenta, Red, Whit
ncube-studio.tistory.com