๊ธฐ์กด ๋งคํ…Œ๋ฆฌ์–ผ์˜ ๋‹จ์ :ย ๋™์‹œ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์˜ค๋ธŒ์ ํŠธ์— ๊ฐ™์€ Material์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š”๊ฒƒ์ด ๋งค์šฐ ๋ฌด์„ญ๋‹ค. ์ฒซ์งธ๋กœ ๊ฐ™์€ ๋งคํ…Œ๋ฆฌ์–ผ์„ ๊ณต์œ ํ•˜๋Š” ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ์˜ ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋ณ€ํ•˜๊ฑฐ๋‚˜, ๋‘˜์งธ๋กœ ์œ ๋‹ˆํ‹ฐ์˜ ๋‚ด๋ถ€ ํŒ๋‹จํ•˜์— ์ƒˆ๋กœ์šด ๋งคํ…Œ๋ฆฌ์–ผ๋กœ ์ธ์Šคํ„ด์Šคํ•ด์„œ ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ๋งŒ ๋‹ค๋ฅธ ๋ฉ”ํ…Œ๋ฆฌ์–ผ์„ ๊ฐ€์ง€๋„๋ก ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ์ € ๋งคํ…Œ๋ฆฌ์–ผ์˜ ํ”„๋กœํผํ‹ฐ๋งŒ ๋ฐ”๊พธ๊ณ  ์‹ถ์€๋ฐ ์œ ๋‹ˆํ‹ฐ ๋‚ด๋ถ€์—์„œ ์ด๋ž˜์ €๋ž˜ํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํญ๋ฐœ์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.


MPB๋ฅผ ํ†ตํ•œ ๋ณ€๊ฒฝ์ 

MPB๋Š” ๋จธํ‹ฐ๋ฆฌ์–ผ ์ž์ฒด๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š๊ณ , Renderer์—๋งŒ ์˜ค๋ฒ„๋ผ์ด๋“œ ๊ฐ’์„ ์–น๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

  • ๋จธํ‹ฐ๋ฆฌ์–ผ: โ€œ๊ณตํ†ต ๊ธฐ๋ณธ๊ฐ’(๊ณต์œ )โ€
  • MPB: โ€œ์ด ๋ Œ๋”๋Ÿฌ๋งŒ ๋‹ค๋ฅธ ๊ฐ’(๊ฐœ๋ณ„)โ€
MPB๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž(๋ณ„ ๋‹ค์„ฏ๊ฐœ *****)

MPB๋Š” ๊ฐ€์ ธ์˜ค๊ณ (Get) โ†’ ์ˆ˜์ •ํ•˜๊ณ (Set) โ†’ ๋‹ค์‹œ ์ ์šฉ(SetPropertyBlock)์˜ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

1
2
3
4
5
6
7
8
9
ย ย ย ย Rendererย _renderer;
ย ย ย ย MaterialPropertyBlockย _mpb;
ย ย ย ย 
ย ย ย ย publicย voidย SetColor(Colorย c)
ย ย ย ย {
ย ย ย ย ย ย ย ย _renderer.GetPropertyBlock(_mpb);ย ย ย ย ย //ย ๊ธฐ์กดย ๋ธ”๋กย ๊ฐ’ย ๋ณด์กด
ย ย ย ย ย ย ย ย _mpb.SetColor(BaseColorId,ย c);ย ย ย ย ย ย ย ย //ย ๊ฐ’ย ๋ณ€๊ฒฝ
ย ย ย ย ย ย ย ย _renderer.SetPropertyBlock(_mpb);ย ย ย ย ย //ย ์ ์šฉ
ย ย ย ย }
cs


์ „ ์ฝ”๋“œ์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ€์ ธ ์˜ค๊ณ  ์‹ถ์–ด์š”

์ด๋Ÿฐ ์ƒํ™ฉ์—์„  sharedMaterials๋ฅผ ์‚ฌ์šฉํ•˜์ž. sharedMaterials์˜ ๊ฒฝ์šฐ ์ธ์Šคํ„ด์Šคํ™”๋ฅผ ์‹œํ‚ค์ง€ ์•Š์Œ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ํญ๋ฐœ์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.