๋ฎค๋ƒ ์–ดํƒ์˜ ์ธ๋””์ผ€์ดํ„ฐ ์‹œ์Šคํ…œ์€ ์ ์„ ์œผ๋กœ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ด๋™ํ•˜๋Š” ๋ผ์ธ์„ ๋ณด์—ฌ์ฃผ๋Š”๋ฐ,ย 


์œ ๋‹ˆํ‹ฐ์—์„œ ์„ ์„ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ์‹์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ์ง€๋งŒ ๋‚˜๋Š” ๋„ํŠธ๊ฐ€ ์ผ๋ถ€๋Ÿฌ ํŠ€๋„๋ก ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ๊ธฐ์— ์•ฝ๊ฐ„์˜ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ๊ฐ์ˆ˜ํ•˜๊ณ ์„œ๋„ Texture2D.SetPixel์„ ์“ฐ๊ณ  ์žˆ์Œ.

(๊ฐ€์žฅ ์ข‹์€ ๊ฑด ์…ฐ์ด๋”๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฑฐ๊ฒ ์ง€๋งŒ, ์•„๋ฌด๋ฆฌ ์šฉ์„ ์จ ๋ด๋„ ์•ˆ ๋˜๋”๋ผ...ํ•˜ ์‹œ๋ฐœ ์…ฐ์ด๋” ์™œ์ด๋ž˜ ์–ด๋ ต๋ƒ...)


์‚ฌ์šฉ์ž๊ฐ€ ์†๊ฐ€๋ฝ์„ ๋“œ๋ž˜๊ทธํ•˜๋Š” ๋„์ค‘์—๋Š” ํ…์Šค์ณ ํด๋ฆฌ์–ด -> ์ ์„  ๋ Œ๋” -> (๋‹ค์Œ ํ”„๋ ˆ์ž„) ํ…์Šค์ณ ํด๋ฆฌ์–ด -> ์ ์„  ๋ Œ๋” -> ... ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š”๋ฐ,


์ด ๋•Œ ํ…์Šค์ณ ํด๋ฆฌ์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์“ฐ๊ณ  ์žˆ์—ˆ์Œ.


publicย staticย Texture2Dย ClearTexture(Texture2Dย texture,ย Colorย clearColor) { Color[]ย fillPixelsย =ย newย Color[texture.widthย *ย texture.height]; forย (intย iย =ย 0;ย iย <ย fillPixels.Length;ย i++) { fillPixels[i]ย =ย clearColor; } texture.SetPixels(fillPixels); returnย texture;ย 

ย }


๊ทธ๋Ÿฐ๋ฐ ์˜ค๋Š˜ย ์•Œ๊ณ  ๋ณด๋‹ˆ ์œ ๋‹ˆํ‹ฐ์—๋Š” Texture2D.SetPixels32() ๋ผ๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ๋”๋ผ. ์†๋„๊ฐ€ ๋” ๋น ๋ฅด๋‹ค๊ณ  ๊ณต์‹ ๋ฌธ์„œ์—์„œ ์ด์•ผ๊ธฐํ•˜๊ธธ๋ž˜ ํ•œ๋ฒˆ ์จ ๋ดค์Œ.


publicย staticย Texture2Dย ClearTexture(Texture2Dย texture,ย Colorย clearColor) { Color32[]ย fillPixelsย =ย newย Color32[texture.widthย *ย texture.height]; forย (intย iย =ย 0;ย iย <ย fillPixels.Length;ย i++) { fillPixels[i]ย =ย clearColor; } texture.SetPixels32(fillPixels); returnย texture;ย 

ย }


Color ๋ณ€์ˆ˜๋ฅผ Color32๋กœ ๋ฐ”๊พธ๊ณ , SetPixels32๋กœ ํ˜ธ์ถœํ•œ๋‹ค.ย 


์ฒ˜์Œ ํ‰๊ท  FPS๋Š” ๋“œ๋ž˜๊ทธํ•˜๋ฉด์„œ ์ธ๋””์ผ€์ดํ„ฐ๊ฐ€ ๋ Œ๋”๋ง๋˜๋Š” ์ค‘์ผ ๊ฒฝ์šฐ 40 ์ •๋„, ๋‘๊ทผ๊ฑฐ๋ฆฌ๋ฉด์„œ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ๋Œ๋ ค๋ณธ ๊ฒฐ๊ณผ...


ํ‰๊ท  2~30์ด ๋‚˜์˜ด.


ํ”„๋ ˆ์ž„์ด ๋” ๋–จ์–ด์กŒ๋‹ค. ์—ฅ? ์ด๊ฑฐ ์™„์ „ ์‚ฌ๊ธฐ ์•„๋‹ˆ๋ƒ? ํ•˜๋Š” ๋„์ค‘์— ๋ฌธ๋“ ๋– ์˜ค๋ฅธ ์ƒ๊ฐ์ด ์žˆ์–ด ํ•œ๋ฒˆ ์‹œํ—˜ํ•ด๋ดค๋‹ค.


publicย staticย Texture2Dย ClearTexture(Texture2Dย texture,ย Color32ย clearColor) { Color32[]ย fillPixelsย =ย newย Color32[texture.widthย *ย texture.height]; forย (intย iย =ย 0;ย iย <ย fillPixels.Length;ย i++) { fillPixels[i]ย =ย clearColor; } texture.SetPixels32(fillPixels); returnย texture;ย 

ย }


ํŒŒ๋ผ๋ฏธํ„ฐ์— Color๋ฅผ ๊ทธ๋Œ€๋กœ ๋’€์—ˆ๋Š”๋ฐ, ๊ทธ๊ฑธ Color32๋กœ ๋ฐ”๊ฟจ์Œ.


๋‘๊ทผ๊ฑฐ๋ฆฌ๋ฉด์„œ ๋‹ค์‹œ ๋Œ๋ ค๋ณธ ๊ฒฐ๊ณผ...ํ‰๊ท  FPS 58~60์„ ์œ ์ง€ํ•œ๋‹ค! SetPixels32 ๋งŒ์„ธ!




์—ฌ๊ธฐ์—” ๋ฌด์Šจ ์ฐจ์ด๊ฐ€ ์žˆ์„๊นŒ?ย 


ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋“ค์–ด์˜จ clearColor๊ฐ€ Color32ํƒ€์ž…์ด ์•„๋‹ˆ๋ผ Color ํƒ€์ž…์ผ ๊ฒฝ์šฐ, fillPixels[i] = clearColor ๋กœ์ง์ด for๋ฌธ ์•ˆ์—์„œ ๋Œ์•„๊ฐˆ ๋•Œ ๋งค๋ฒˆ ํ˜• ๋ณ€ํ™˜์ด ์ˆ˜ํ–‰๋จ.


ํ•œ๋‘๋ฒˆ์ด๋ฉด ๋ชฐ๋ผ๋„ ์Œฉ ํ…์Šค์ณ์— ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๋Š” ์ค‘์ด๊ณ , ํ…์Šค์ณ ํฌ๊ธฐ๊ฐ€ 256*256์ด๋‹ค ๋ณด๋‹ˆ, ์ด ํ˜• ๋ณ€ํ™˜์ด๋ผ๋Š” ๋†ˆ์ด ์ƒ๊ฐ๋ณด๋‹ค ์—„์ฒญ๋‚˜๊ฒŒ ๋ฆฌ์†Œ์Šค๋ฅผ ์žก์•„๋จน์Œ.ย 


๊ทธ๋ž˜์„œ ํŒŒ๋ผ๋ฏธํ„ฐ์—์„œ ๊ณง๋ฐ”๋กœ ํ˜• ๋ณ€ํ™˜์„ ํ•ด์„œ Color32ํƒ€์ž…์œผ๋กœ ๋ฐ›์•„์™€ ์ฃผ๋ฉด, for๋ฌธ์ด ๋Œ ๋•Œ ๋งค๋ฒˆ ํ˜• ๋ณ€ํ™˜์ด ์•ˆ ์ผ์–ด๋‚˜๋„ OK๊ฐ€ ๋˜์–ด์„œ SetPixels32์˜ย ์ œ๋Œ€๋กœ ๋œ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ.


ํ˜น์‹œ๋‚˜ ์‹ถ์—ˆ๋Š”๋ฐ ํ˜• ๋ณ€ํ™˜์ด ์ด๋ ‡๊ฒŒ ์„ฑ๋Šฅ์— ํฌ๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ค„์€ ๋ชฐ๋ž๋„ค. ๋‹ด๋ถ€ํ„ฐ ์ฃผ์˜ํ•ด์•ผ๊ฒ ์Œ...