ย ย Material mat;ย ย
ย ย ย void Awake()
ย ย {
ย ย ย ย mat = GetComponent<MeshRenderer >().material;
ย ย }
ย private void OnTriggerEnter(Collider other)
ย ย mat.color = Color.red;
ํผ๊ฒฉ์ ์บ๋ฆญํฐ(ํ๋ฆฌํน) ์์ ์ ๊น ๋นจ๊ฐ์ผ๋ก ๋ฐ๊ฟ๋ ค๊ณ ํ๋๋ฐ ์๋๋ค์ใ
์ฝ๋๋ ์ผ๋ถ ์ง๋ฅด๊ณ ์ค์๋ถ๋ถ๋ง ์ฌ๋ ธ์ด์.
๊ณจ๋๋ฉํ๋ ๊ฐ์ ๋ณด๊ณ ํ๋๋ฐ ํ๋ํน์ด๋ผ ๊ทธ๋ฐ๊ฐ?์๋๋ค์..
1. ํด๋น ๊ฒ์์ค๋ธ์ ํธ์ MeshRenderer๊ฐ ๋ถ์ด์์ง ์์์, GetComponent ๊ฐ null์ ๋ฆฌํดํ์ต๋๋ค. SkinnedMeshRenderer๋ฅผ ์ป์ด์ค๊ณ ์ถ์ผ๋ฉด GetComponent๋ฅผ ์จ์ผ ํฉ๋๋ค. 2. ํด๋น SkinnedMeshRenderer ์ ๋งคํฐ๋ฆฌ์ผ์ด ์ฌ๋ฌ๊ฐ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. material ์ ๋ฐ์์ค๋ฉด ์ฒซ๋ฒ์งธ ๋งคํฐ๋ฆฌ์ผ๋ง ๋ฐ์์ค๊ฒ ๋๋ฏ๋ก, 1์์ ์ ๋๋ก SkinnedMeshRenderer๋ฅผ ์ป์ด์ค๋๋ผ๋ ์บ๋ฆญํฐ ์ ์ฒด๊ฐ ๋ถ๊ฒ ๋ณํ์ง๋ ์์ต๋๋ค. ๋ชจ๋ ๋งคํฐ๋ฆฌ์ผ์ ์ป์ด์ค๊ณ ์ถ๋ค๋ฉด materials ๋ฅผ ์ป์ด์์ ๋ชจ๋ ๋งคํฐ๋ฆฌ์ผ์ ์์์ ์ ์ฉํด์ค์ผ ํฉ๋๋ค. 3. ๋ชจ๋ ๋งคํฐ๋ฆฌ์ผ์ ์ ์ ํ ์๊น์ ์ง์ ํ๋๋ผ๋...
3. ๋ชจ๋ ๋งคํฐ๋ฆฌ์ผ์ ์ ์ ํ ์๊น์ ์ง์ ํ๋๋ผ๋ ์ค์ ๋ก ์๊น์ด ์ํ๋ ์๊น๋ก ๋์ฌ ๊ฒ์ด๋ผ๋ ๋ณด์ฅ์ ์์ต๋๋ค. ํด๋น ๋งคํฐ๋ฆฌ์ผ์ ์ง์ ๋ ์ ฐ์ด๋๊ฐ Color ๊ฐ์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ์ง์ ํด์ค color ํ๋กํผํฐ๋ ๊ทธ๋ฅ ๋ฒ๋ ค์ง ๋ฟ์ ๋๋ค. ํด๋น ๋งคํฐ๋ฆฌ์ผ์ด color ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ๋ ์ ฐ์ด๋๋ฅผ ์ฐ๋์ง ํ์ธํด๋ด์ผ ํฉ๋๋ค.
์ ์์ธํ ์ค๋ช ๋๋ฌด ๊ฐ์ฌ๋๋ฆฝ๋๋คใ
์๋ ์ง๊ธ๋ณด๋ ์ฒซ๋์ ๊บฝ์ ๋ฌ๋ฆฐ๊ฑฐ ๋ค ๋ ์๊ฐ๋ค GetComponent(MeshRenderer)() ๋ง๊ณ GetComponent(SkinnedMeshRenderer)() ํ๋ฉด ๋จ๋๋ค
์์์ ์ ์ค๋ช ํด์คฌ์ง๋ง ํ ๋ง๋ ๋ง๋ถ์ด์๋ฉด, Color๊ฐ์ ๊ฒ์ ์์๋ก ๋ฐ๊พธ๊ฑฐ๋ ํ ๋๋ MaterialPropertyBlock์ ์ฐ๋๊ฒ ์ข์. ๋ํ Renderer.material๊ณผ ๊ฐ์ ์์ผ๋ก ์ฝ๊ธฐ๋ง ํด๋ Renderer.sharedMaterial์ ๋ณต์ฌ๋ณธ์ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ ๊ด๋ฆฌํด์ฃผ์ง ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ๋ฆญ์ ์์ธ์ด ๋ ์๋ ์์ด.