using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MaterialTest : MonoBehaviour {
public SkinnedMeshRenderer skin;
// Use this for initialization
void Start () {
skin.GetComponent<SkinnedMeshRenderer>().material.color = Color.black; // 첫 번째 방법
for (int i = 0; i < 2; i++) { // 두 번째 방법
skin.GetComponent<SkinnedMeshRenderer> ().materials [i].color = Color.black;
}
}
}
1. 첫번째 방법
skin.GetComponent<SkinnedMeshRenderer>().material.color = Color.black;
쉽게 말하면, material이 한 개일 경우에 이렇게 사용한다. 그냥 material을 호출하면 자동으로 인식되는 경우이다.
2. 두번째 방법
for (int i = 0; i < 2; i++) { // 두 번째 방법
skin.GetComponent<SkinnedMeshRenderer> ().materials [i].color = Color.black;
}
쉽게 말하면, material이 여래 개일 경우에 이렇게 사용한다.
유니티에서는 보통 materials라 나오며 배열로 표기된다.
이럴 경우에는 for문을 사용해서 material의 갯수만큼 반복하며 material을 조작할 수 있다.
위 코드의 경우 매티러얼이 2개이므로 materials [0] 과 materials [1]을 각각 반복하였다.
이상으로 스크립트에서 material을 사용하는 방법에 대해 알아봤다.
'개발 > Unity & C#' 카테고리의 다른 글
[유니티] GameObject와 gameObject의 차이점에 대해 알아보자... (1) | 2018.04.19 |
---|---|
[유니티] 게임오브젝 널(null) 체크해서 에러나지 않게 하는 방법! (0) | 2018.04.19 |
[유니티] Animator를 이용하여 Animation Play할 때 한 번만 실행되는 경우 해결 방법! (2) | 2018.04.17 |
[유니티] 버튼 사운드 재생 시, 빠르게 연타할때 사운드 겹칠 때 해결 방법! (0) | 2018.04.16 |
[유니티] NGUI UIButton 비활성화할 때 색상 제거하는 방법! (0) | 2018.04.16 |