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

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

KoreanFoodie's Study

#11-2 : ์˜ค๋””์˜ค ์†Œ์Šค ์ปดํฌ๋„ŒํŠธ ํ™œ์šฉํ•˜๊ธฐ

์œ ๋‹ˆํ‹ฐ์—์„œ ์˜ค๋””์˜ค (์†Œ๋ฆฌ) ์žฌ์ƒํ•˜๊ธฐ ์œ ๋‹ˆํ‹ฐ์—์„œ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์†Œ๋ฆฌ๋ฅผ ๋‚ด๋„๋ก ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ๋Š”, ์˜ค๋””์˜ค ์†Œ์Šค ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ™์ด๋ฉด ๋œ๋‹ค. ๊ทธ ํ›„, ์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉํ•  AudioClip ๊ณผ AudioSource ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ , ํ”Œ๋ ˆ์ด์–ด ์Šคํฌ๋ฆฝํŠธ์˜ AudioClip ๋ณ€์ˆ˜์— ์ ์ ˆํ•œ ์˜ค๋””์˜ค ์†Œ์Šค ํŒŒ์ผ์„ ๋“œ๋ž˜๊ทธ&๋“œ๋žํ•ด์„œ ๋„ฃ์–ด์ค€ ๋‹ค์Œ, ์‹ค์ œ ํƒ€์ด๋ฐ์— ๋งž๊ฒŒ Play ๋‚˜ PlayOneShot ๋“ฑ์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋œ๋‹ค! ํ˜น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ํ•ด๋„ ๋œ๋‹ค : // ์˜ค๋””์˜ค ์†Œ์Šค ์ปดํฌ๋„ŒํŠธ์— ๋‚ด์žฅ๋œ ํด๋ฆฝ์„ ๋ณ€๊ฒฝ playerAudioPlayer.clip = deathClip; playerAudioPlayer.Play(); ์˜ค๋””์˜ค ์†Œ์Šค ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์žฌ์ƒํ•˜๋Š” ์†Œ๋ฆฌ๋Š” ์˜ค๋””์˜ค ๋ฆฌ์Šค๋„ˆ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋“ฃ๋Š”๋‹ค. MainCamera ์˜ ๊ฒฝ์šฐ, Audio..

Game Dev/Unity : Tutorial 2022. 7. 10. 14:15
#11-1 : ์Šคํ”„๋ผ์ดํŠธ ์ž˜๋ผ ์‚ฌ์šฉํ•˜๊ธฐ (Sprite -> multiple)

์Šคํ”„๋ผ์ดํŠธ ์ž๋ฅด๊ธฐ ํ”ฝ์…€ ์•„ํŠธ ์ด๋ฏธ์ง€๋ฅผ ์ด์šฉํ•ด์„œ, ๊ฐ„๋‹จํ•œ ์Šคํ”„๋ผ์ดํŠธ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋“ค์–ด ๋ณด์ž. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์บ๋ฆญํ„ฐ๊ฐ€ ์ฃฝ๋Š” ์Šคํ”„๋ผ์ดํŠธ๊ฐ€ ํ•œ๊บผ๋ฒˆ์— ํ•œ ํŒŒ์ผ๋กœ ๋“ค์–ด์™”๋‹ค๊ณ  ํ•ด ๋ณด์ž. Inspector ์ฐฝ์—์„œ Sprite Mode ๋ฅผ Multiple ๋กœ ๋ฐ”๊พผ ๋‹ค์Œ,Sprite Editor ๋ฅผ ์—ด์ž. ์Šคํ”„๋ผ์ดํŠธ ์—๋””ํ„ฐ ์™ผ์กฑ ์ƒ๋‹จ์— Slice ์—์„œ Grid By Cell Size ๋ฅผ ํด๋ฆญํ•œ๋‹ค. ๊ทธ ํ›„ ์ ์ ˆํ•œ ์‚ฌ์ด์ฆˆ๋กœ ์Šคํ”„๋ผ์ดํŠธ๋ฅผ ์ž๋ฅด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์Šคํ”„๋ผ์ดํŠธ๊ฐ€ ์ž˜๋ฆฐ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค! ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์˜ Apply ๋ฅผ ๋ˆ„๋ฅธ ํ›„ ์ข…๋ฃŒํ•˜์ž.

Game Dev/Unity : Tutorial 2022. 7. 10. 14:12
#10. ๊ณต๊ฐ„๊ณผ ์›€์ง์ž„

์ง€์—ญ ๊ณต๊ฐ„๊ณผ ์ „์—ญ ๊ณต๊ฐ„ ์œ„์˜ ํ๋ธŒ๋Š” y ์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „์„ ๊ฐ€ํ•ด์กŒ๋‹ค. ํ˜„์žฌ ํŠธ๋žœ์Šคํผ์˜ ์ขŒํ‘œ๊ณ„๋Š” ์ง€์—ญ๊ณต๊ฐ„์œผ๋กœ ๋‚˜์™€ ์žˆ๋Š”๋ฐ, ์ด๋ฅผ ์ „์—ญ ๊ณต๊ฐ„ (๊ฒŒ์ž„ ์›”๋“œ๋ฅผ ๊ธฐ์ค€) ์œผ๋กœ ๋ฐ”๊ฟ”์„œ ์˜ฎ๊ฒจ๋ณผ ์ˆ˜๋„ ์žˆ๋‹ค. ์ง€์—ญ ๊ณต๊ฐ„์€ ๋ถ€๋ชจ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋ฉฐ, ์˜ค๋ธŒ์ ํŠธ ๊ณต๊ฐ„์€ ์ž๊ธฐ ์ž์‹ ์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ๋‹ค. ์ง€์—ญ ๊ณต๊ฐ„์ด ๋ถ€๋ชจ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ๋ธŒ A ์˜ ์ž์‹ ํ๋ธŒ B ๋ฅผ ์„ค์ •ํ•œ ํ›„ ํ๋ธŒ A ๋ฅผ ํšŒ์ „ํ•˜๋ฉด, ํ๋ธŒ B ์˜ ๊ณต๊ฐ„๋„ ํšŒ์ „๋œ ์ƒํƒœ๋กœ ํŠธ๋žœ์Šคํผ์ด ์ด๋™๊ณผ ํšŒ์ „์ด ์ด๋ฃจ์–ด์งˆ ๊ฒƒ์ด๋‹ค. ์ธ์ŠคํŽ™ํ„ฐ ์ฐฝ์— ํ‘œ์‹œ๋˜๋Š” ์œ„์น˜, ํšŒ์ „, ์Šค์ผ€์ผ์€ ์ง€์—ญ ๊ณต๊ฐ„ ๊ธฐ์ค€์œผ๋กœ ์ธก์ •๋œ ๊ฐ’์ด๋‹ค. ํ‰ํ–‰์ด๋™๊ณผ ํšŒ์ „ ์˜ˆ์ œ // ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์—ญ ๊ณต๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ํ‰ํ–‰์ด๋™ transform.Translate(new Vector3(0, 1, 0) * Time...

Game Dev/Unity : Tutorial 2022. 7. 10. 14:03
์œ ๋‹ˆํ‹ฐ 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