[Unreal] UMG
ยท
๐Ÿ“ Game/โœ Unreal
1. UMGUMG(Unreal Motion Graphic)๋Š” ์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ œ์ž‘ ํˆด์ด๋‹ค. 2. ์‚ฌ์šฉUMG์—์„œ๋Š” UI๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ์œ„์ ฏ(Widget)์ด๋ผ๋Š” ๊ฐœ๋…์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ์œ„์ ฏ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ(Widget Blueprint)์—์„œ ์ด ์œ„์ ฏ๋“ค์„ ํŽธ์ง‘ํ•˜์—ฌ UI๋ฅผ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋””์ž์ด๋„ˆํƒญ์€ ์‹œ๊ฐ์  ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ์„ ์œ„ํ•œ ํŽธ์ง‘์ฐฝ์ด๋‹ค.๊ทธ๋ž˜ํ”„ํƒญ์€ ์ธํ„ฐ๋ ‰์…˜ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด ๋งˆ๋ จ๋œ ์ฝ”๋”ฉ ์˜์—ญ์˜ ํŽธ์ง‘์ฐฝ์ด๋‹ค. ์œ„์ ฏ์€ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ์”ฌ์„ ์ตœ์ƒ๋‹จ์œผ๋กœ ํ•˜์—ฌ ๊ฐ๊ฐ์˜ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ๋ฐฐ์น˜ํ•˜๊ณ   ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํŠน์ •ํ•œ ๊ธฐ๋Šฅ์„ ๋‹ด์„ ๊ฒฝ์šฐ์—” ์œ„์ ฏ์œผ๋กœ ๋ฌถ์–ด์„œ ๊ทธ๋ฃนํ™”ํ•œ๋‹ค.์ตœ์ƒ์œ„ ์œ„์ ฏ์€ ์บ”๋ฒ„์Šค ํŒจ๋„์„ ํ™œ์šฉํ•˜์—ฌ ์œ„์ ฏ๋“ค์˜ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌ์„ฑํ•œ๋‹ค.ํ•˜์œ„ ์œ„์ ฏ์€ ํŠน์ • ๊ธฐ๋Šฅ..
[C#] Delegate, Event (Feat. ๋ฌด๋ช… ํ•จ์ˆ˜, Func, Action)
ยท
๐Ÿ“ Language/โœ C#
1. Delegate(๋Œ€๋ฆฌ์ž)Delegate๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํƒ€์ž…์ด๋‹ค. ๋Œ€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”์„œ๋“œ๋ฅผ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์ „๋‹ฌํ•˜๊ณ  ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.์ด๋ฒคํŠธ์™€ ํ•จ๊ป˜ ๋Œ€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์— ๋“ฑ๋กํ•˜๊ณ  ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋“ฑ๋ก๋œ ๋ชจ๋“  ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ํ˜ธ์ถœ๋˜์–ด ์ฒ˜๋ฆฌ๋œ๋‹ค. BeginInvoke, EndInvoke ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€๋ฆฌ์ž๋ฅผ ๋น„๋™๊ธฐ์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ์˜ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณดํ†ต ๋น„๋™๊ธฐ ์ž‘์—…๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค.// delegate ๋ฐ˜ํ™˜ํ˜• delegate๋ช…(๋งค๊ฐœ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜, ....);delegate int DelegateName(int value1, string value2); ๋Œ€๋ฆฌ์ž๋Š” ๋ณดํ†ต ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๋™์‹œ์— ํ˜ธ์ถœํ•ด์•ผ ํ•  ๋•Œ ..
[Unreal][C++] ๋ฐ”๋ผ๋ณด๋Š” Actor์—๊ฒŒ ํšจ๊ณผ ์ฃผ๊ธฐ
ยท
๐Ÿ“ Game/โœ Unreal
์นด๋ฉ”๋ผ๊ฐ€ ์•„์ดํ…œ์„ ๋ฐ”๋ผ๋ณด๋ฉด ๊ทธ ์•„์ดํ…œ์—๊ฒŒ ๋ฐ˜์ง์ด๋Š” ํšจ๊ณผ๋ฅผ ์ค„ ๊ฒƒ์ด๋‹ค.  1. Overlay MaterialOverlay Material์€ ๊ธฐ์กด ์•กํ„ฐ์— ์„ค์ •๋œ Material์— ์ถ”๊ฐ€๋กœ ๋ธ”๋ Œ๋“œ ํ•˜๊ธฐ ์œ„ํ•œ Material์ด๋‹ค. ์™ธ๊ณฝ์„ , ๋น› ๋“ฑ ์—ฌ๋Ÿฌ ์—ฌ๋Ÿฌ ํšจ๊ณผ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.  ์บ๋ฆญํ„ฐ๊ฐ€ ์ด ์•กํ„ฐ๋ฅผ ๋ฐ”๋ผ๋ณผ ๋•Œ ํ•ด๋‹น ๋จธํ„ฐ๋ฆฌ์–ผ์— M_Outline ๋จธํ„ฐ๋ฆฌ์–ผ์„ Set ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•  ๊ฒƒ์ด๋‹ค.  M_Outline ๋จธํ„ฐ๋ฆฌ์–ผ์€ ์œ„์—์„œ ์•„๋ž˜๋กœ ๋น›์„ ๋‚ด๋ฉฐ Highlight ๋˜๋Š” ๋จธํ„ฐ๋ฆฌ์–ผ์ด๋‹ค.  ๊ตฌํ˜„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Blend Mode: AdditiveShading Model: Unlit 2. Sphere Trace By Channel์บ๋ฆญํ„ฐ๊ฐ€ ์•กํ„ฐ๋ฅผ ๋ฐ”๋ผ๋ณด๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด Trace๋ฅผ ํ™œ์šฉํ•  ๊ฒƒ์ด๋‹ค.  ๋จผ์ € ํŠน์ • ์•กํ„ฐ๋งŒ ..
[Unreal][C++] ์บ๋ฆญํ„ฐ ์นด๋ฉ”๋ผ ๊ฐœ์„ 
ยท
๐Ÿ“ Game/โœ Unreal
1. ์นด๋ฉ”๋ผ๊ฐ€ ์บ๋ฆญํ„ฐ ๋ชธ์„ ๋šซ๋Š” ํ˜„์ƒ์บ๋ฆญํ„ฐ๊ฐ€ ์˜ค๋ธŒ์ ํŠธ์— ๊ฐ€๊นŒ์ด ๊ฐ€๊ฒŒ ๋˜๋ฉด, ์นด๋ฉ”๋ผ์™€ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๊ฐ€๊นŒ์›Œ์ ธ ์บ๋ฆญํ„ฐ ๋ชธ์„ ๋šซ๋Š” ํ˜„์ƒ์ด๋‹ค.  Collision Presets ๋‚ด Camera ์„ค์ •์„ Block์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋œ๋‹ค.Default๋กœ Block ์„ค์ •๋˜์–ด ์žˆ์ง€๋งŒ ํ˜น์‹œ๋‚˜ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ์ˆ˜์ •ํ–ˆ์„ ๊ฒฝ์šฐ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜๋‹ค.  ์ด๋ ‡๊ฒŒ ๋ณ€๊ฒฝํ•˜๋”๋ผ๋„ ๋งค์šฐ ๊ฐ€๊น๊ฒŒ ์นด๋ฉ”๋ผ๊ฐ€ ์ด๋™ํ•˜๋ฉด ์—ฌ์ „ํžˆ ๋ชธ์„ ๋šซ๊ณ  ์žˆ๋‹ค.์ด๋Ÿด ๋• ํ”„๋กœ์ ํŠธ ์„ธํŒ…์—์„œ Near Clip Plane ๊ฐ’์„ ๋ณ€๊ฒฝํ•œ ํ›„ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ๋œ๋‹ค.  ์ด๋ ‡๊ฒŒ ๊ฐ€๊น๊ฒŒ ์นด๋ฉ”๋ผ๊ฐ€ ๋ถ™์–ด๋„ ๋ชธ์„ ๋šซ์ง€ ์•Š๋Š”๋‹ค.   2. ์นด๋ฉ”๋ผ ์ถฉ๋Œ์นด๋ฉ”๋ผ์™€ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๊ฐ€๊นŒ์›Œ์ง€๋ฉด ์ˆœ๊ฐ„์ ์œผ๋กœ ์นด๋ฉ”๋ผ๊ฐ€ ์ด๋™๋˜๋Š”๋ฐ, ์›€์ง์ž„์ด ๋”ฑ๋”ฑํ•ด์„œ ์–ด์ƒ‰ํ•ด ๋ณด์ธ๋‹ค.  ๊ทธ๋ž˜์„œ ์นด๋ฉ”๋ผ Collision์„ ์ง์ ‘ ๊ตฌํ˜„ํ•ด ๋ณผ ..
[Unity] null ์ฒดํฌ
ยท
๐Ÿ“ Game/โœ Unity
1. UnityEngine.Object == null๊ฐœ๋ฐœ ์‹œ ๊ฐ์ฒด๊ฐ€ ์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด == null ์ฒดํฌ๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ณค ํ•œ๋‹ค. ๊ณผ์—ฐ ์ด ๋ฐฉ๋ฒ•์ด ์ตœ์„ ์ผ๊นŒ? 2. fake null"UnityEngine.Object == null์—์„œ์˜ null์ด ์ง„์งœ null์ด ์•„๋‹ˆ๋‹ค! ์ฆ‰, fake null์ด๋‹ค"๋ผ๋Š” ๋ง์ด ์กด์žฌํ•œ๋‹ค. ์™œ ๊ทธ๋Ÿด๊นŒ? ์›์ธ์€ ์œ ๋‹ˆํ‹ฐ์—์„œ์˜ null๊ณผ System์—์„œ์˜ null์˜ ์ฐจ์ด์ด๋‹ค. ์ด ์ฐจ์ด๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, UnityEngine.Object์™€ System.Object์˜ null ์ฒดํฌ ๊ฐ’์ด ๋‹ค๋ฅธ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. var obj = new GameObject();yield return null; Destroy(obj);yield return nu..
[Unreal][C++] ์•กํ„ฐ ์ƒ์„ฑ
ยท
๐Ÿ“ Game/โœ Unreal
1. ํŠน์ • ์œ„์น˜์— ์ƒ์„ฑํ•˜๊ธฐ์Šคํฐ ํฌ์ธํŠธ๊ฐ€ ๋  ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ํด๋ž˜์Šค ์•กํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ ˆ๋ฒจ ๋‚ด ๋ฐฐ์น˜ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฐฐ์น˜๋œ ์Šคํฐ ํฌ์ธํŠธ ์ค‘ ๋žœ๋คํ•œ ์Šคํฐ ํฌ์ธํŠธ์˜ ์œ„์น˜์— ์•กํ„ฐ๊ฐ€ ์ƒ์„ฑ๋˜๋„๋ก ํ•  ๊ฒƒ์ด๋‹ค.  1) ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ๊ตฌํ˜„๋จผ์ € ๋ฐฐ์น˜๋œ ์Šคํฐ ํฌ์ธํŠธ๋“ค์„ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ด๋‹ค. Get All Actors Of Class With Tag ๋…ธ๋“œ๋ฅผ ํ†ตํ•ด ๋ ˆ๋ฒจ์— ๋ฐฐ์น˜๋œ ์•กํ„ฐ๋“ค์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. Tag๋ฅผ ํ†ตํ•ด ํŠน์ • Tag๋ฅผ ๊ฐ€์ง„ ์•กํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.  ๋‹ค์Œ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ์‹ถ์€ ์ˆ˜๋งŒํผ Loop๋ฅผ ๋Œ๋ฉฐ ์•กํ„ฐ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.Collision Handling OverrideAlways Spawn, Ignore Collisions: ์•กํ„ฐ๊ฐ€ ๋‹ค๋ฅธ ์˜ค๋ธŒ์ ํŠธ์™€ ์ถฉ๋Œํ•ด๋„ ์ง€์ •๋œ ์œ„์น˜์— ์ƒ์„ฑํ•œ๋‹คTry To Adjust Location, But Alway..