Notice
Recent Posts
Recent Comments
Link
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (1099)

KoreanFoodie's Study

[OpenGL ES] 4-1๊ฐ• : ๋ฒกํ„ฐ์˜ ํšŒ์ „๊ณผ ๋ณ€ํ™˜, ์•„ํ•€๋ณ€ํ™˜, 3์ฐจ์› ๊ณต๊ฐ„์—์„œ์˜ ๋ณ€ํ™˜, ๋™์ฐจ์ขŒํ‘œ๊ณ„(Homogeneous Coordinates)

์ด ๊ฐ•์˜๋Š” ์œ ํˆฌ๋ธŒ์— ๋ฌด๋ฃŒ๋กœ ๊ณต๊ฐœ๋˜์–ด ์žˆ๋Š” ํ•œ์ •ํ˜„ ๊ต์ˆ˜๋‹˜์˜ ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์Šค ๊ฐ•์ขŒ๋ฅผ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐ•์˜๋ฅผ ์ง์ ‘ ๋“ค์œผ์‹œ๊ฑฐ๋‚˜ ์ฑ…์„ ๊ตฌ์ž…ํ•˜์…”์„œ ํ™•์ธํ•ด ๋ณด์„ธ์š”. ๊ฐ•์˜ ์ž๋ฃŒ๋Š” ๊นƒํ—™ ๋งํฌ์— ์˜ฌ๋ผ์™€ ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์•ฝ : 1. ์•„ํ•€๋ณ€ํ™˜์€ Scaling, Rotation, Translation ํ–‰๋ ฌ์˜ ๊ฒฐํ•ฉ์œผ๋กœ, [L|t] ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ฌด๋ฆฌ ๋งŽ์€ ๋ณ€ํ™˜์„ ํ•ด๋„ ๊ฒฐ๊ตญ ๋‹จ์ผํ•œ [L|t] ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค! 2. ํ–‰๋ ฌ์—์„œ ์—ด์„ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•ด ํ™•์žฅ์„ ์‹œํ‚ค๋ฉด, Translation ์„ ํ–‰๋ ฌ์„ ์ด์šฉํ•ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ ‡๋“ฏ ํ™•์žฅ๋œ ํ–‰๋ ฌ์˜ ์ขŒํ‘œ๊ณ„๋ฅผ ๋™์ฐจ์ขŒํ‘œ๊ณ„(Homogeneous Coordinates) ๋ผ๊ณ  ํ•œ๋‹ค. 3. ์›์ ์ด ์•„๋‹Œ ์ ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌผ์ฒด๋ฅผ ํšŒ์ „ํ•˜๋ ค๋ฉด, ๊ธฐ์ค€ ์ ์„ ์›์ ์œผ๋กœ Translation ํ›„,..

Game Dev/OpenGL ES 2023. 4. 12. 00:38
[OpenGL ES] 3๊ฐ• : ๋ชจ๋ธ๋ง, ํด๋ฆฌ๊ณค ๋ฉ”์‹œ, ํ‘œ๋ฉด ๋ฒ•์„ (Surface Normal), ์ •์  ๋ฒ•์„ (Vertex Normal)

์ด ๊ฐ•์˜๋Š” ์œ ํˆฌ๋ธŒ์— ๋ฌด๋ฃŒ๋กœ ๊ณต๊ฐœ๋˜์–ด ์žˆ๋Š” ํ•œ์ •ํ˜„ ๊ต์ˆ˜๋‹˜์˜ ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์Šค ๊ฐ•์ขŒ๋ฅผ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐ•์˜๋ฅผ ์ง์ ‘ ๋“ค์œผ์‹œ๊ฑฐ๋‚˜ ์ฑ…์„ ๊ตฌ์ž…ํ•˜์…”์„œ ํ™•์ธํ•ด ๋ณด์„ธ์š”. ๊ฐ•์˜ ์ž๋ฃŒ๋Š” ๊นƒํ—™ ๋งํฌ์— ์˜ฌ๋ผ์™€ ์žˆ์Šต๋‹ˆ๋‹ค.์š”์•ฝ : 1. ๊ทธ๋ž˜ํ”ฝ์Šค์—์„œ๋Š” ๋ฌผ์ฒด๋ฅผ ํด๋ฆฌ๊ณค ๋ฉ”์‹œ์˜ ์กฐํ•ฉ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ์ด๋•Œ ํด๋ฆฌ๊ณค์œผ๋กœ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ผ๊ฐํ˜•์„ ์‚ฌ์šฉํ•œ๋‹ค. 2. ํด๋ฆฌ๊ณค ๋ฉ”์‹œ๋“ค์˜ ์ •์  ์ขŒํ‘œ์™€ Normal ์€ Vertex Array ์˜ ํ˜•ํƒœ๋กœ ์ €์žฅํ•œ๋‹ค. 3. ํ‘œ๋ฉด ๋ฒ•์„ (Surface Normal)์€ ํด๋ฆฌ๊ณค ๋ฉ”์‹œ ์‚ผ๊ฐํ˜•์˜ Normal ๋ฒกํ„ฐ์ด๋ฉฐ, ์ •์  ๋ฒ•์„ (Vertex Normal) ์€ ํŠน์ • Vertex ์—์„œ์˜ Normal ๋ฒกํ„ฐ์ด๋‹ค. ๋งค๋ˆํ•œ ๋ฌผ์ฒด๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ๋Š” Vertex Normal ์ด ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค.ํด๋ฆฌ๊ณค ๋ฉ”์‹œ (Polygon Mesh)ํด..

Game Dev/OpenGL ES 2023. 4. 11. 21:02
[OpenGL ES] 2๊ฐ• : ๋ฒกํ„ฐ์˜ ๋‚ด์ /์™ธ์ , ์„ ํ˜• ๋ณด๊ฐ„(Linear Interpolation)

์ด ๊ฐ•์˜๋Š” ์œ ํˆฌ๋ธŒ์— ๋ฌด๋ฃŒ๋กœ ๊ณต๊ฐœ๋˜์–ด ์žˆ๋Š” ํ•œ์ •ํ˜„ ๊ต์ˆ˜๋‹˜์˜ ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์Šค ๊ฐ•์ขŒ๋ฅผ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐ•์˜๋ฅผ ์ง์ ‘ ๋“ค์œผ์‹œ๊ฑฐ๋‚˜ ์ฑ…์„ ๊ตฌ์ž…ํ•˜์…”์„œ ํ™•์ธํ•ด ๋ณด์„ธ์š”. ๊ฐ•์˜ ์ž๋ฃŒ๋Š” ๊นƒํ—™ ๋งํฌ์— ์˜ฌ๋ผ์™€ ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์•ฝ : 1. ์ขŒํ‘œ๊ณ„๋Š” Orthonormal ํ•œ ๊ธฐ์ € ๋ฒกํ„ฐ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ๋ฒกํ„ฐ๋ฅผ ๋‚ด์ ํ•˜๋ฉด ์ ˆ๋Œ“๊ฐ’์— ์ฝ”์‚ฌ์ธ ๊ฐ’์„ ๊ณฑํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค. 90 ๋„์ผ ๊ฒฝ์šฐ 0 ์ด๋‹ค! 3. ์™ธ์ ์˜ ๊ฒฝ์šฐ, ์˜ค๋ฅธ์† ๋ฒ•์น™์œผ๋กœ ๋ฐฉํ–ฅ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์™ธ์ ์˜ ์ ˆ๋Œ“๊ฐ’์€ ๋‘ ๋ฒกํ„ฐ๊ฐ€ ๋งŒ๋“œ๋Š” ํ‰ํ–‰์‚ฌ๋ณ€ํ˜•์˜ ๋„“์ด์ด๋‹ค. ์ขŒํ‘œ๊ณ„ (Coordinate System and Basis) ์™€ ๋ฒกํ„ฐ์˜ ๋‚ด์ /์™ธ์  ์ขŒํ‘œ๊ณ„๋Š” ์›์ (origin)๊ณผ ๊ธฐ์ €(basis) ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์—๋Š” 2D ๊ณต๊ฐ„์„ ์ด๋ฃจ๋Š” ๊ธฐ์ € ๋ฒกํ„ฐ์˜ ์กฐํ•ฉ์ด ๋‚˜์™€ ์žˆ๋Š”๋ฐ, ..

Game Dev/OpenGL ES 2023. 4. 11. 01:19
[OpenGL ES] 1๊ฐ• : ๊ทธ๋ž˜ํ”ฝ์Šค ๊ฐœ๋ก , ๋ชจ๋ธ๋ง, ๋ฆฌ๊น…, ์• ๋‹ˆ๋ฉ”์ด์…˜, ๋ Œ๋”๋ง

์ด ๊ฐ•์˜๋Š” ์œ ํˆฌ๋ธŒ์— ๋ฌด๋ฃŒ๋กœ ๊ณต๊ฐœ๋˜์–ด ์žˆ๋Š” ํ•œ์ •ํ˜„ ๊ต์ˆ˜๋‹˜์˜ ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์Šค ๊ฐ•์ขŒ๋ฅผ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐ•์˜๋ฅผ ์ง์ ‘ ๋“ค์œผ์‹œ๊ฑฐ๋‚˜ ์ฑ…์„ ๊ตฌ์ž…ํ•˜์…”์„œ ํ™•์ธํ•ด ๋ณด์„ธ์š”. ๊ฐ•์˜ ์ž๋ฃŒ๋Š” ๊นƒํ—™ ๋งํฌ์— ์˜ฌ๋ผ์™€ ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์•ฝ : 1. ๊ทธ๋ž˜ํ”ฝ์Šค ์ž‘์—… ๊ณผ์ •์€ ๋ชจ๋ธ๋ง -> ๋ฆฌ๊น… -> ์• ๋‹ˆ๋ฉ”์ด์…˜ -> ๋ Œ๋”๋ง -> ํฌ์ŠคํŠธ ํ”„๋กœ์„ธ์‹ฑ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 2. ์‹ค์‹œ๊ฐ„ ๊ทธ๋ž˜ํ”ฝ์Šค์—์„œ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ์žฌ์ƒ, ๋ Œ๋”๋ง, ํฌ์ŠคํŠธ ํ”„๋กœ์„ธ์‹ฑ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. 3. ๊ฒŒ์ž„์—”์ง„์€ ๊ทธ๋ž˜ํ”ฝ์Šค API ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ๊ทธ๋ž˜ํ”ฝ์Šค API ๋Š” GPU ๋ฅผ ๊ฐ€๋™ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐํŽ˜์ด์Šค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค! ๊ทธ๋ž˜ํ”ฝ์Šค ๊ฐœ๋ก  ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์Šค์˜ ์—ฐ์‚ฐ์€ ์˜คํ”„๋ผ์ธ๊ณผ ๋Ÿฐํƒ€์ž„์œผ๋กœ ๋‚˜๋‰˜๋Š”๋ฐ, modeling ๊ณผ rigging, animation ์ฒ˜๋ฆฌ๋Š” ๊ทธ๋ž˜ํ”ฝ ์•„ํ‹ฐ์ŠคํŠธ๋“ค์ด ..

Game Dev/OpenGL ES 2023. 4. 11. 00:08
์–ธ๋ฆฌ์–ผ ๋ Œ๋”๋ง ์ตœ์ ํ™” : Visibility ์™€ ์˜คํด๋ฃจ์ „ ์ปฌ๋ง(Occlusion Culling)

์–ธ๋ฆฌ์–ผ ๋ Œ๋”๋ง ์ตœ์ ํ™” : Visibility ์™€ ์˜คํด๋ฃจ์ „ ์ปฌ๋ง(Occlusion Culling) ํ•ต์‹ฌ : 1. ๋ Œ๋”๋ง์—๋Š” ์ปฌ๋ง(Culling) ์ด๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ๋‹ค. ์ด ๊ฐœ๋…์€, ์นด๋ฉ”๋ผ์˜ ์‹œ์ ์—์„œ ๋ณด์ด์ง€ ์•Š๋Š” ๋…€์„๋“ค์„ ๊ตณ์ด ๋ Œ๋”๋ง ํ•  ํ•„์š” ์—†์ด ๊ฑท์–ด๋‚ด๋Š”(Culling) ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์•กํ„ฐ์˜ Visibility ๋Š” Bounds Scale ์„ ์„ค์ •ํ•ด ํ•ด๋‹น ์•กํ„ฐ๋ฅผ ์นด๋ฉ”๋ผ์— ๋ณด์—ฌ์ค„ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ์ปฌ๋ง ๋ฐฉ๋ฒ•(Culling Method) ์—๋Š” ํฌ๊ฒŒ 4 ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค : Distance, View Frustum, Precomputed Visibility, Dynamic Occulusion. 3. Culling ๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด๋“ค์€ 'stat initviews' ๋ช…๋ น์–ด๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด ..

Game Dev/Unreal C++ : Study 2023. 3. 29. 23:46
[์–ธ๋ฆฌ์–ผ] Visual Studio ํ•œ๊ธ€ ๊นจ์ง (Log ํ•œ๊ธ€ ๊นจ์ง)

[์–ธ๋ฆฌ์–ผ] Visual Studio ํ•œ๊ธ€ ๊นจ์ง (Log ํ•œ๊ธ€ ๊นจ์ง) ํ•ต์‹ฌ : 1. ์ž„์‹œ ๋ฐฉํŽธ์œผ๋กœ ํ•œ๊ธ€ ๋Œ€์‹  ์˜์–ด ๋กœ๊ทธ๋งŒ ๋‚˜์˜ค๊ฒŒ ํ•˜๊ธฐ 2. ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์˜ ์ธ์ฝ”๋”ฉ ์„ธํŒ…์„ ๋ฐ”๊พธ๊ธฐ (๋ถˆ์•ˆ์ •) 3. cl-filter ๋ฅผ ์ˆ˜์ •ํ•ด์„œ '์™„๋ฒฝ'ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•˜๊ธฐ ๊ตฌ๊ธ€๋ง ์ค‘ ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๊ณ , ๊ฐ๊ฐ์„ ์ ์šฉํ•ด ๋ณธ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ•œ๋‹ค. ์ž„์‹œ ๋ฐฉํŽธ์œผ๋กœ ํ•œ๊ธ€ ๋Œ€์‹  ์˜์–ด ๋กœ๊ทธ๋งŒ ๋‚˜์˜ค๊ฒŒ ํ•˜๊ธฐ ์ด ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์ž. ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์ด๋‹ค. ๊ทผ๋ฐ ํ•œ๊ธ€๋„ ๋‚˜์™€์•ผ ๋˜๋Š” ์ƒํ™ฉ์ด๋ฉด... ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์•ˆ๋œ๋‹ค. ๋‹น๊ทผ. ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์˜ ์ธ์ฝ”๋”ฉ ์„ธํŒ…์„ ๋ฐ”๊พธ๊ธฐ (๋ถˆ์•ˆ์ •) ์ด ๋งํฌ์˜ ๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ•์„ ์ฐธ๊ณ ํ•˜์ž. ์ ˆ๋Œ€ ํ•˜์ง€ ๋ง๊ธฐ. ๊ธฐ์กด ํŒŒ์ผ๋“ค ์™„์ „ ๋‹ค ๊นจ์ง„๋‹ค. cl-filter ๋ฅผ ์ˆ˜์ •ํ•ด์„œ '์™„๋ฒฝ'ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•˜๊ธฐ God ์‹ค๋ ฅ์ž ๋ถ„์ด ์˜ฌ๋ฆฌ์‹  ๋งํฌ๋ฅผ ํ†ตํ•ด ์ˆ˜์ •์„ ์‹œ๋„ํ–ˆ๋‹ค. (..

Game Dev/Unreal C++ : Dev Log 2023. 3. 28. 17:47
์–ธ๋ฆฌ์–ผ ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ(Unreal Smart Pointer) ์ •๋ฆฌ 2 : ๊ตฌํ˜„ ์„ธ๋ถ€์‚ฌํ•ญ๊ณผ ํŒ

์–ธ๋ฆฌ์–ผ ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ ๊ตฌํ˜„ ์„ธ๋ถ€์‚ฌํ•ญ๊ณผ ํŒ ํ•ต์‹ฌ : 1. ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ๊ณ ๋ คํ•  ๋•Œ๋Š” ํ•ญ์ƒ ํผํฌ๋จผ์Šค์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด์•ผ ํ•œ๋‹ค. ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ๋Š” ์ž์› ๊ด€๋ฆฌ์—๋Š” ์ ํ•ฉํ•˜์ง€๋งŒ ์ผ๋ถ€ ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ ํƒ€์ž…์€ C++ ๊ธฐ๋ณธ ํฌ์ธํ„ฐ๋ณด๋‹ค ๋” ๋Š๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 2. TSharedPtr ๋Š” ๋น„์นจ๋ฒ”ํ˜•(non-intrusive) ๋กœ, ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ์˜ ์†Œ์œ  ํ•˜์— ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค. ์˜ค๋ธŒ์ ํŠธ๋ฅผ TSharedRef ๋˜๋Š” TSharedPtr ๋กœ ์ ‘๊ทผํ•˜๋ฉด, ์˜ค๋ธŒ์ ํŠธ ํด๋ž˜์Šค๋ฅผ TSharedFromThis ์—์„œ ํŒŒ์ƒ์‹œ์ผœ์•ผ ํ•œ๋‹ค. 3. ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ์Šค๋ ˆ๋“œ ์„ธ์ดํ”„ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์ž. ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ ๊ตฌํ˜„ ์„ธ๋ถ€์‚ฌํ•ญ ์–ธ๋ฆฌ์–ผ ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ..

Game Dev/Unreal C++ : Study 2023. 3. 22. 11:44
[์–ธ๋ฆฌ์–ผ] TOptional ์‚ฌ์šฉํ•˜๊ธฐ + ์˜ˆ์ œ

TOptional ํ•ต์‹ฌ : 1. TOptional ์€ ์ธ์ž๋กœ ๋“ค์–ด๊ฐ„ ๋…€์„์ด ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ์•„๋‹Œ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” Wrapper ํด๋ž˜์Šค์ด๋‹ค. 2. Optional.h ์— ๋ณด๋ฉด Value ์™€ bIsSet ์ด ์žˆ๋Š”๋ฐ, Value ๊ฐ€ ์‹ค์ œ ๋„˜๊ธฐ๋Š” ๋ฐ์ดํ„ฐ์ด๊ณ , bIsSet ์ด ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋…€์„์ด๋‹ค. IsSet, Emplace, GetValue ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 3. TOptional ์„ ์‚ฌ์šฉํ•˜๋Š” ์žฅ์  ์ค‘ ํ•˜๋‚˜๋Š”, ํŠน์ • ๋ณ€์ˆ˜๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์—ˆ๋Š”์ง€๋ฅผ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด 'Magic Number' ๋ฅผ ์“ธ ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค! TOptional ๊ตฌ์กฐ์ฒด ์ผ๋‹จ, Optional.h ์— ์ •์˜๋œ TOptional ๊ตฌ์กฐ์ฒด์˜ ๋Œ€๋žต์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋ณด์ž..

Game Dev/Unreal C++ : Study 2023. 3. 21. 23:45