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

๋ชฉ๋ก2023/01 (6)

KoreanFoodie's Study

[์–ธ๋ฆฌ์–ผ] SafeZone ์œ„์ ฏ

SafeZone ์œ„์ ฏ ํ•ต์‹ฌ : 1. SafeZone ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜๋ฉด, ์ฝ˜์†”/PC/๋ชจ๋ฐ”์ผ ๋“ฑ ์—์„œ ํŒจ๋„ ๊ฐ€์žฅ์ž๋ฆฌ์— UI ๋ฐ ์ปจํ…์ธ ๊ฐ€ ์ œ๋Œ€๋กœ ์ถœ๋ ฅ์ด ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋จผ์ €, SafeZone ํŒจ๋„์— ๋Œ€ํ•œ ์–ธ๋ฆฌ์–ผ ์—”์ง„์˜ ์„ค๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค : ์–ธ๋ฆฌ์–ผ ๊ณต์‹ ๋ฌธ์„œ์— ์žˆ๋Š” ์„ธ์ดํ”„ ์กด์— ๋Œ€ํ•œ ๊ทธ๋ฆผ์„ ๋ณด์ž. ์™ผ์ชฝ์€ SafeZone ์œ„์ ฏ์ด ์—†๋Š” ๊ฒฝ์šฐ์ด๊ณ , ์˜ค๋ฅธ์ชฝ์€ SafeZone ์œ„์ ฏ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ์˜ค๋ฅธ์ชฝ์˜ ๊ฒฝ์šฐ, Uniform Safe Zone (๊ท ๋“ฑ ์„ธ์ดํ”„ ์กด) ์˜์—ญ์„ 0.9(๋นจ๊ฐ•) ์œผ๋กœ ์„ค์ •ํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์„ธ์ดํ”„ ์กด์„ ํ™œ์šฉํ•˜๋ฉด, ๊ฐ€์žฅ์ž๋ฆฌ์˜ "Unsafe" ํ•œ ์กด์— ์œ„์ ฏ์ด ์ž˜๋ฆฌ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค! ์ฐธ๊ณ  : ์–ธ๋ฆฌ์–ผ ๊ณต์‹ ๋ฌธ์„œ

Game Dev/Unreal C++ : Dev Log 2023. 1. 16. 21:21
[์–ธ๋ฆฌ์–ผ] ํšจ์œจ์ ์ธ ํด๋ž˜์Šค ํƒ€์ž… ์ฒดํฌ ๋ฐฉ๋ฒ• (๋Ÿฐํƒ€์ž„)

UObject ์˜ ํด๋ž˜์Šค ํƒ€์ž… ์ฒดํฌ (๋Ÿฐํƒ€์ž„) ์šฐ๋ฆฌ๊ฐ€ ์•„์ดํ…œ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์†Œ๋ชจํ’ˆ์ผ ๊ฒฝ์šฐ ์ˆ˜๋Ÿ‰์„ ๊นŽ๋Š” ์ฝ”๋“œ๋ฅผ ์ง ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. if (nullptr != Cast(myItem)) { this->consumeItem(myItem); } else { this->useItem(myItem); } (๋ฌผ๋ก  ํ˜„์‹ค์ ์œผ๋กœ ์ด๋Ÿฐ ๊ฒฝ์šฐ, FConsumable ํด๋ž˜์Šค์—์„œ useItem ์„ override ํ•˜๊ฒ ์ง€๋งŒ.. ์—ฌํŠผ) ์œ„์ฒ˜๋Ÿผ, ๊ฐ์ฒด์˜ ํด๋ž˜์Šค ํƒ€์ž…์„ ์ฒดํฌํ•˜๋Š” ๊ฒฝ์šฐ, ์–ด๋–ป๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ผ๊นŒ? ์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ์—, ๋งŒ์•ฝ ์บ์ŠคํŒ…์ด ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด(์ฆ‰, ๊ทธ๋ƒฅ ํƒ€์ž… ์ฒดํ‚น๋งŒ ํ•˜๋ฉด ๋˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด), Cast(์–ธ๋ฆฌ์–ผ์˜ Cast ๋Š” ์—…/๋‹ค์šด ์บ์ŠคํŒ…์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค)๋ฅผ ์“ฐ๋Š” ๊ฒƒ๋ณด๋‹ค..

Game Dev/Unreal C++ : Dev Log 2023. 1. 13. 15:13
์–ธ๋ฆฌ์–ผ ์ŠคํŠธ๋ง ํ…Œ์ด๋ธ”์—์„œ ํ…์ŠคํŠธ ์กฐํšŒ / ํ…์ŠคํŠธ ๊ฐ’์œผ๋กœ ํ…Œ์ด๋ธ” ์กฐํšŒํ•˜๊ธฐ

ํ…์ŠคํŠธ ์กฐํšŒ ๋ณดํ†ต ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๊ฒŒ ๋˜๋ฉด, ๊ฐ์ข… ์ŠคํŠธ๋ง๋“ค์„ ์ŠคํŠธ๋ง ํ…Œ์ด๋ธ”์— ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. ์ด๋•Œ ์ŠคํŠธ๋ง ํ…Œ์ด๋ธ”์€ Namespace ์™€ ํ‚ค ๊ฐ’ ๋‘ ๊ฐœ๊ฐ€ ์žˆ๊ณ , ์›ํ•˜๋Š” Namespace ์—์„œ ํ‚ค๋ฅผ ๋Œ€์ž…ํ•ด ์›ํ•˜๋Š” ํ…์ŠคํŠธ๋ฅผ ์ฐพ๊ฒŒ ๋œ๋‹ค. Namespace ๋Š” ๊ฐ„๋‹จํžˆ ๋งํ•ด ์ŠคํŠธ๋ง ํ…Œ์ด๋ธ” ํŒŒ์ผ์˜ ์ด๋ฆ„์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ์‹ค์ œ๋กœ C++ ์ฝ”๋“œ๋กœ ์งœ๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค : FText findText; FText::FindText(TEXT("your_namespace"), TEXT("your_key"), findText); your_namespace ์™€ your_key ์— ์ ํ•ฉํ•œ ๊ฐ’์„ ์ฃผ๋ฉด, ์›ํ•˜๋Š” ๊ฐ’์ด findText ์— ๋“ค์–ด๊ฐˆ ๊ฒƒ์ด๋‹ค. ์•„์ฐธ, ์ŠคํŠธ๋ง ํ…Œ์ด๋ธ”์„ ๋งŒ๋“  ๋‹ค์Œ, ์ƒ๋‹จ์˜ '๋„ค์ž„์ŠคํŽ˜์ด์Šค' ๋ฅผ ์ œ๋Œ€๋กœ ์„ค์ •ํ•ด ..

Game Dev/Unreal C++ : Dev Log 2023. 1. 5. 18:19
[Short Essay] ๊ณตํ—ˆ๋ณ‘

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