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

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

KoreanFoodie's Study

์œ ๋‹ˆํ‹ฐ Awake ์™€ Start ์ฐจ์ด

Udemy ๊ด€๋ จ ๊ฐœ๋… ์ •๋ฆฌ ๋ฐ Dev Log ๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! ์œ ๋‹ˆํ‹ฐ Awake ์™€ Start ์ฐจ์ด ์œ ๋‹ˆํ‹ฐ์—์„œ Awake ์™€ Start ๋Š” ๋‘˜ ๋‹ค ์ดˆ๊ธฐํ™”๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š” ๊ฑธ๊นŒ? Awake() : ๋ชจ๋“  ๋ณ€์ˆ˜์™€ ๊ฒŒ์ž„์˜ ์ƒํƒœ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ Awake ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฒŒ์ž„์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ํ˜ธ์ถœ (start ๋ณด๋‹ค ๋จผ์ € ํ˜ธ์ถœ) ๋˜๋ฉฐ, ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์ดˆ๊ธฐํ™”๋˜๊ณ  ํ˜ธ์ถœ๋œ๋‹ค. ๋”ฐ๋ผ์„œ GameObject.FindWithTag ๋ฅผ ์ด์šฉํ•ด ํ•ด๋‹น ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์š”์ฒ˜ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์˜ค๋ธŒ์ ํŠธ์™€ ์•ˆ์ „ํ•˜๊ฒŒ ์ƒํ˜ธ์ž‘์šฉ๊ธฐ ๊ฐ€๋Šฅํ•˜๋‹ค. [์ฃผ์˜] : ๊ฐ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์˜ Awake() ๋Š” ๋žœ๋ค ์ˆœ์„œ๋กœ ์‹คํ–‰๋˜๋ฏ€๋กœ, ์Šคํฌ๋ฆฝํŠธ๊ฐ„์˜ ์ฐธ์กฐ(reference) ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด Awake ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ •๋ณด๋ฅผ ๋ณด๋‚ด๊ณ  ๋ฐ›๋Š” ๊ฒฝ์šฐ์—๋Š” St..

Game Dev/Unity : Study 2022. 7. 10. 09:42
์œ ๋‹ˆํ‹ฐ์—์„œ ์ผ์‹œ์ •์ง€ ๋ฐ ํŠน์ • ๋ฌผ์ฒด ์‹œ๊ฐ„ ์ •์ง€ ๊ตฌํ˜„ํ•˜๊ธฐ

Udemy ๊ด€๋ จ ๊ฐœ๋… ์ •๋ฆฌ ๋ฐ Dev Log ๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! ์œ ๋‹ˆํ‹ฐ์—์„œ ์ผ์‹œ์ •์ง€ํ•˜๊ธฐ ์œ ๋‹ˆํ‹ฐ์—์„œ๋Š” ์ผ์‹œ ์ •์ง€ ๊ธฐ๋Šฅ์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋ฉด ๋ ๊นŒ? ๋จผ์ € ๊ฒฐ๋ก ๋งŒ ๋งํ•˜์ž๋ฉด, Time.timeScale ๊ฐ’์„ ์กฐ์ ˆํ•˜์—ฌ Time.deltaTime ์„ 0 ์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค. void PauseGame () { Time.timeScale = 0; } void ResumeGame () { Time.timeScale = 1; } ์ด๋Ÿฐ ๋ฐฉ์‹์„ ์ด์šฉํ•˜๋ฉด, ๊ฐ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋“ค์˜ Update ๋‚ด ํ•จ์ˆ˜์—์„œ Time.deltaTime ์— ์˜์กดํ•˜๋Š” ๋ชจ๋“  ๋™์ž‘์ด ๋ฉˆ์ถ”๊ฒŒ ๋œ๋‹ค. ์ด ๋ง์€์ฆ‰์Šจ, Time.deltaTime ์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ๋…€์„๋“ค์˜ ๊ฒฝ์šฐ์—๋Š” ์—ฌ์ „ํžˆ ์ผ์‹œ์ •์ง€๋ผ๋Š” ๋ณธ์—ฐ์˜ ๋ชฉ์ ๊ณผ ๋‹ค๋ฅธ ๋™์ž‘์„ ํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค..

Game Dev/Unity : Study 2022. 7. 9. 23:17
๋ชจ๋ฐ”์ผ ๋นŒ๋“œ์‹œ, Input.GetTouch(0) ์‚ฌ์šฉ๋ฒ• : argumentexception: index out of bounds ํ•ด๊ฒฐ๋ฒ•

์œ ๋‹ˆํ‹ฐ ๊ณต๋ถ€ ๋…ธํŠธ Touch Input ์ด์šฉ์‹œ ์—๋Ÿฌ? ๋ถ„๋ช…ํžˆ ์—๋””ํ„ฐ์—์„œ๋Š” ๋งˆ์šฐ์Šค ํด๋ฆญ ์ž…๋ ฅ์œผ๋กœ ์ž˜ ๋™์ž‘ํ–ˆ๋Š”๋ฐ, ๋ชจ๋ฐ”์ผ๋กœ ๋นŒ๋“œํ•˜๋‹ˆ ์ œ๋Œ€๋กœ ์ž‘๋™์„ ํ•˜์ง€ ์•Š์•„ ์›์ธ์„ ํŒŒ์•…ํ•˜๋˜ ์ค‘, Input ๊ด€๋ จ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ธฐ์กด์—๋Š” ํ„ฐ์น˜ ์ž…๋ ฅ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ํ–ˆ์—ˆ๋Š”๋ฐ... (ํ›„๋žต) if (Input.GetTouch(0).phase == TouchPhase.Began) { JumpButtonPressed(); } ๊ทผ๋ฐ ์ด ๊ฒฝ์šฐ, argumentexception: index out of bounds ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์—ˆ๋‹ค. ์ด๋Š” ํ„ฐ์น˜ ์ž์ฒด๊ฐ€ ์—†๋Š”๋ฐ, Input ์—์„œ Touch ์˜ ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค ํ•ด์„œ ์ƒ๊ธด ๋ฌธ์ œ์˜€๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ„๋‹จํžˆ, Touch ๋ฐฐ์—ด์ด ๋น„์–ด์žˆ์ง€ ์•Š์€์ง€ ์ฒดํฌํ•ด์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ..

Game Dev/Unity : Study 2022. 7. 8. 11:55
์œ ๋‹ˆํ‹ฐ(Udemy) #1-4 : tag ์‚ฌ์šฉํ•˜๊ธฐ

Udemy ๊ฐ•์ขŒ๋ฅผ ๋“ค์œผ๋ฉฐ ๋‚ด์šฉ ๋ณต์Šต์„ ์œ„ํ•ด ๊ธฐ๋กํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค ์œ ๋‹ˆํ‹ฐ #1-4 : tag ์‚ฌ์šฉํ•˜๊ธฐ ์œ ๋‹ˆํ‹ฐ๋Š” tag ๋ฅผ ์ด์šฉํ•ด ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์‰ฝ๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ถฉ๋Œํ•˜๋ฉด ์ ์ˆ˜๋ฅผ ์˜ฌ๋ฆฌ๋Š” ์ฝ”๋“œ๋ฅผ ์ง ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. private void OnCollisionEnter(Collision other) { if (other.gameObject.tag == "Player") { GetComponent().material.color = Color.red; gameObject.tag = "Hit"; } } ์œ„ ์ฝ”๋“œ๋Š” ํ”Œ๋ ˆ์ด์–ด์™€ ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์ถฉ๋Œ์„ ํ•˜๋ฉด ์ƒ‰๊น”์„ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ๋ฐ”๊พธ๊ณ , ํ˜„ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์˜ ํƒœ๊ทธ๋ฅผ Hit ์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค. ์ด๋•Œ, ์ถฉ๋Œํ•œ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ํ”Œ๋ ˆ์ด์–ด์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จ์„ ํ•˜๊ธฐ ์œ„ํ•ด..

Game Dev/Unity : Tutorial 2022. 7. 4. 23:07
[์–ธ๋ฆฌ์–ผ] Widget ๋ฐ์ดํ„ฐ์™€ ํด๋ž˜์Šค ๋ฐ์ดํ„ฐ ์—ฐ๋™(bind) ํ•˜๊ธฐ

Widget ์— ๋“ค์–ด๊ฐˆ ๋ฐ์ดํ„ฐ์™€ ํด๋ž˜์Šค ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ์—ฐ๋™ (bind) ํ•˜๊ธฐ ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•˜๋‹ค ๋ณด๋ฉด ์•„์ดํ…œ๋งˆ๋‹ค ๋‹ค๋ฅธ ์„ค๋ช… ์ฐฝ์ด ๋œจ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ, ์‚ฌ์‹ค ์ด๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์œ„์ ฏ(์ฐฝ)์€ ๋˜‘๊ฐ™์ด ์ƒ๊ฒผ์ง€๋งŒ, ๋‚ด์šฉ๋ฌผ์€ ๋‹ค๋ฅธ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋Š”๋ฐ... ์œ„์ ฏ์— ๋“ค์–ด๊ฐ€๋Š” ๋‚ด์šฉ๊ณผ ํด๋ž˜์Šค์˜ ์ •๋ณด๋ฅผ ์—ฐ๋™ํ•˜๋ฉด ์œ„์ ฏ์˜ ๋‚ด์šฉ์„ ์•„์ดํ…œ์— ๋งž๊ฒŒ ๋„์›Œ ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์ˆœ์„œ๋Œ€๋กœ ์ด๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž. 1. ๋จผ์ € Widget Blueprint ๋ฅผ ๋งŒ๋“ ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚ด์šฉ๋ฌผ์„ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ฑ„์›Œ๋„ฃ๋Š”๋‹ค. 2. ํ•ด๋‹น ์œ„์ ฏ์„ ๋„์šธ ํด๋ž˜์Šค์—์„œ ์œ„์ ฏ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ ์–ธํ•˜๊ณ , ์ด๋ฅผ ๋„ฃ์–ด ์ค€๋‹ค. item.h /* Popup widget for when the players look at the item */ UPROPERTY(EditAnywhere..

Game Dev/Unreal C++ : Dev Log 2022. 6. 23. 22:26
[์–ธ๋ฆฌ์–ผ] ํ—ค๋“œ์ƒท ๊ตฌํ˜„ํ•˜๊ธฐ (๋ถ€์œ„๋ณ„ ํ”ผ๊ฒฉ ๋ฐ๋ฏธ์ง€ ์„ค์ •)

ํ—ค๋“œ์ƒท ๊ตฌํ˜„ํ•˜๊ธฐ (๋ถ€์œ„๋ณ„ ํ”ผ๊ฒฉ ๋ฐ๋ฏธ์ง€ ์„ค์ •) FPS ๊ฒŒ์ž„์„ ํ•˜๋‹ค๋ณด๋ฉด ํ—ค๋“œ์ƒท์— ์ถ”๊ฐ€ ๋ฐ๋ฏธ์ง€ (ํ˜น์€ ์ฆ‰์‚ฌ) ๋ฅผ ์ฃผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ, ์ด๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋ฉด ๋ ๊นŒ? ๊ฐ„๋‹จํ•œ ๋ฐฉ์‹์œผ๋กœ๋Š”, ์ผ๋‹จ ์ด์•Œ์„ ๋งž์€ Enemy ํด๋ž˜์Šค ๋‚ด Skeletal Mesh ์˜ Bone Name ์„ ์ฐธ๊ณ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์Šค์ผˆ๋ ˆํ†ค ํŠธ๋ฆฌ๋ฅผ ๋ณด๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด head ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์ œ ๋ฐ๋ฏธ์ง€๋ฅผ ๋ฐ›๋Š” ํ•จ์ˆ˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค. AEnemy* HitEnemy = Cast(BeamHitResult.Actor.Get()); if (HitEnemy) { if (BeamHitResult.BoneName.ToString() == HitEnemy->GetHeadBone()) { // Head shot } else {..

Game Dev/Unreal C++ : Dev Log 2022. 6. 22. 13:28