Material[] matArray = GetComponentsInChildren<MeshRenderer>().material;
์ด ์คํฌ๋ฆฝํธ๊ฐ ๊ฑธ๋ ค์๋ ์ค๋ธ์ ํธ๋ ์์ ๋๊ฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ
์์[0]์ Light, ์์[2]๋ MeshRenderer ์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ง๊ณ ์์
Light[] litArray = GetComponentsInChildren<Light>();์ ์ ์๋ํ๊ฑฐ๋ ?
Debug.Log(litArray.Length) ์ฐ์ผ๋ฉด 1 ๋จ๊ณ .enabled = false ์ฐ์ผ๋ฉด ๊บผ์ง๊ณ ์์ฃผ ์ ์๋ํจ
๊ทผ๋ฐ MeshRenderer์์๋ ์๋ฌ๋ฅผ ๋ฟ์
MeshRenderer๋ material์ ๋ํ ์ ์๋ฅผ ํฌํจํ๊ณ ์์ง ์์ผ๋ฉฐ material์ด๋ผ๋ ํ์ฅ ๋ฉ์๋๊ฐ ์ด์ฉ๊ตฌ์ ์ฉ๊ตฌ ํ๋๋ฐ
์ฝ๋๋ฅผ ๋ญ๋ผ๊ณ ๋ฐ๊ฟ์ค์ผ ์์๊ฐ์ฒด์ ์๋ MeshRenderer.Material์ ์ ๊ทผํ ์ ์์?
Find๋ ์์ฐ๊ณ ์ถ์
๋ ์ง๊ธ MeshRenderer[](๋ฐฐ์ด)์ ์์ง๋ ์๋ material ํ๋กํผํฐ์ ์ ๊ทผํ๊ฑฐ์ Material[] -> MeshRenderer[]๋ก ๋ฐ์๋ด์ ๋ฐ๋ณต๋ฌธ์ผ๋ก Material์ ๋ฐ์์์ผ์ง
GetComponentsInChildren๋ ์ปดํฌ๋ํธ ๋ฐฐ์ด์ ๋ฐํํ๋ ํจ์์
๋๊ฐ ์ฐพ๋ material ํ๋กํผํฐ๋ MeshRenderer ํด๋์ค ์์ ์์
GetComponentsInChildren()๋ MeshRenderer๋ฐฐ์ด์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๋๋ ๊ทธ ๋ฐํ๋ฐ์ MeshRenderer๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ก ์ํ๋ ์์์ ์ ๊ทผํด์ materialํ๋กํผํฐ๋ฅผ ํธ์ถํด์ผ๋
์ฌ๊ธฐ์ ๋งํ๋ ์ ๋ค๋ฆญ ๋งค๊ฐ๋ณ์ ๋ถ๋ฑํธ ์์ ๋ค์ด์ฌ ํ์์ ๏ผMeshRenderer๏ผ์
์ ใ ใ MeshRenderer[] blahblah = Get...(); ํ ๋ค์์ blahblah[0].material์ ์ ๊ทผํ๋๊น ๋๋ค! ๊ทธ๋ผ ํ๋๋ง ๋ ๋์์ค ์ ์์ด? material ์์ emission์ด๋ผ๊ณ ์์์ ์ด๊ฑฐ ์ฒดํฌ๋ฐ์ค๋ฅผ ์คํฌ๋ฆฝํธ๋ก ์ผ๊ณ ๋๋ ค๋ฉด ๋ญ๋ผ๊ณ ํด์ผ๋จ? emission์ด๋ผ๋ ๋ฉ์๋๋ ์๋ค๋๋ฐ... ์ ๋ํฐ ์ค๋ช ์ ๋ด๋ '์๋ฏธ์ ์ ๋น ์์ค๋ฅผ ๋ง๋ค์ด์ค์ ^0^๋ผ๊ณ ๋ง ํด๋๊ณ ํ๋ผ๋ฏธํฐ๋ฅผ ์์๋ ค์ค.. ๋ด๊ฐ ๋ชป์ฐพ์๊ฑด์ง
์ ์ด์ emission์ ๋ฉ์ฌ๋ ๋๋ฌ์์ ๋ค์ด๋ณธ์ ์๊ณ ์ดํํธ๊ฐ์๋ฐ ๋ ์ ๋ํฐ ํํฐํด์ ์์จ์ ๋ชจ๋ฅด๊ณ ์ด๊ฑด ๋ค๋ฅธ ์ธ๋ถ์ด๊ฐ ์๋ ค์ค๊ฑฐ์ ๋ฉ์ฌ ๋ ๋๋ฌ๋ ๊ฑ ๋จ์ํ ๋ฉ์ฌ ๋ ๋๋ง์ ๋ด๋นํ๋ ์ปดํฌ๋ํธ์ ๋๊ฐ ๋ณด๋ ์ค๋ช ์ ์๋ฌธ์ ์ด๋ป๊ฒ ๋ผ์๋๊ฑฐ์
material.EnableKeyword("_EMISSION") ์๋ ๋ง๊ณ
https://docs.unity3d.com/Manual/StandardShaderMaterialParameterEmission.html
์ด๊ฑฐ๋ง๊ณ ๋ ๊ฒ์ํด๋ ๋ญ ์๋์ค๋๋ผ๊ณ .. ๊ทผ๋ฐ ๊ตฌ๊ธ๋งํด์ ํด๊ฒฐํ์ด material.DisableKeyword("_EMISSION");๋ผ๊ณ ํ๋ฉด ํด๋น ์ดํํธ ์ฒดํฌ๋ฐ์ค๋ฅผ ๋ ์ ์๋ค๋๋ฐ ์ด๊ฑฐ ๋ช ๋ น์ด๋ ๋ ์ด๋ ์ค๋ช ์์ ๋์์๋๊ฑด์ง ๋์ ํ ์์๊ฐ ์๋ค..
์๋ ค์ค ํ๋ ์ด๋ ๊ฒ ์ ๋ํฐ์์ ๋นํธ์ธ ํด๋์ ํจ๊ณผ ๊ฑด๋๋ฆฌ๋ ๋ช ๋ น์ด๋ค์ ์ด๋์ ๊ณต๋ถํด์ผ ๋๋์? ํด๋์ค ๋ฉ์๋ ์ด๋ฐ๊ฑฐ๋ ์์ ๋ค๋ฅธ๊ฑฐ์ฃ ?
์ด๊ฑด ์ ฐ์ด๋๋ผ ๋๊ณ ํค๋๊ธฐ๋ฅ์ ์๊ณ ์ ฐ์ด๋ ํ๋กํผํฐ๋ฅผ ๋ฐ๊ฟ์ผํ ๊บผ์ Material์ Set~ ์ผ๋ก ์์ํ๋ ์ ฐ์ด๋ ํ๋กํผํฐ ์์ ๋ฉ์๋๊ฐ ์๊ธดํ ๊ฑฐ์
https://docs.unity3d.com/Manual/MaterialsAccessingViaScript.html
์ด๋
https://docs.unity3d.com/Manual/shader-keywords-scripts.html
์ ์ฒด์ ์ผ๋ก๋ ์ ฐ์ด๋ ์ชฝ
์ ์ด์ ์ ฐ์ด๋๊ฐ ์ด์ผ ๊ตฌํ๋ผ์ด๋์ง์ ๋ฐ๋ผ ๋ค ๋ฌ๋ผ ํด๋น ์ ฐ์ด๋์ emission ํ๋กํผํฐ์ฒ๋ผ ๋ถ๋ฆฌ์ธ์ด ๋ฌ๋ฆฐ๊ฒ๋ ์๊ณ ์๋๊ฒ๋ ์์ด์ ์ผ๋ฐ์ผ์
๊ณ ๋ง์ ๋ง์ง๋ง์ผ๋ก ํ๋๋ง.. ์์๊ฐ์ฒด์ ์ ๊ทผํ ๋๋ ํญ์ ์ด๋ ๊ฒ ์ปดํฌ๋ํธ๋ณ๋ก ๋ฐฐ์ด ์ง์ ์ ๊ทผํด์ผ๋จ? ๊ทธ๋ฅ child[0].transform.position์ด๋ผ๋ ๊ฐ child[2].GetComponent<>๋ผ๋ ๊ฐ ์ด๋ ๊ฒ ์์๋ค์ ๋ฐฐ์ด๋ก ํ๋ ค๋ฉด ๋ญ๋ผ๊ณ ํด์ผ๋จ? ์์ด๊ฐ ๊ตฌ๋ ค์ GetChild SetChild ๋ญ ์ด์ํ๊ฑฐ ๋ค ํด๋ณด๋ค๊ฐ ๋จธ๋ฆฌ๊ฐ ์ด์ง๋ฌ์์ ํ๊ตญ์ด๋ก ๋์์ ๊ตฌํจ..
์ ํํ ๊ธฐ์ต์ ์๋๋๋ฐ ๋๊ฐ ์๊ฐํ๋ child[2]๋ Transform ํจ์ GetChild(2)๋ ๋๊ฐ์๊ฑธ? GetChild(2).gameObject.GetComponent ์ด๊ฑธ๊ฑฐ์
๋ค๋ง ์์์ ๋ฐ์์ฌ๋ Transform์ ๋ฐ์์ค๊ธฐ๋๋ฌธ์ gameObjectํ๋กํผํฐ๋ก ์ ๊ทผํด์ ์ปดํฌ๋ํธ๋ฅผ ๋ฐ์์์ผ๋
์ ฐ์ด๋์ ์ํ๋ ํ๋กํผํฐ๋ฅผ ๋๊ณ ํฌ์ ์๋๋ณด๋ค ์ง์์ด ๋์๋ค
GetComponentsInChildren๏ผTransform๏ผ() ์ด๋ฉด ์์ ํธ๋์คํผ ๋ฐฐ์ด์ ๋ฐ๋๋ฐ ์ฌ๊ธฐ์ Linq๋ก GameObject๋ฐฐ์ด์ ๋ฐ๊ฒ ํ ์๋ ์๋๋ฐ ๋ ์ด๋ฐ๊ฑธ ๊ตฌํํด๋ณธ์ ์ ์์ด์ ์์ ๋ชจ๋ฅด๊ฒ ๋ ธ
์์ ๋ถ๋ฑํธ๊ฐ ์น๋ค ์ง์์ก๋๋ฐ ๋์จ ๋๊ธ ๋ฒ๊ทธ์ ์ฐธ๊ณ ํ์
๊ณ ๋ง์!!
์ ์ด์ ์ด๊ฑฐ ์ปดํ์ผ ์ค๋ฅ ๋จ์ง ์์?? ๋ฉ๋ชจ์ฅ์ผ๋ก ์์ํจ?
๋ณต๋ถํ๊ฒ ์๋๋ผ ํค๋ณด๋ ์ท๊ฑด์น๊ณ ํ๋ ํผ๋ฌ ๋์์ ์๊ฐ๋๋๋๋ก ์ด๊ฑฐ์.. ใ ใ