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

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

KoreanFoodie's Study

6-2. ํŒจํ‚ค์ง€ : ์ž๋ฐ” ํŒจํ‚ค์ง€์˜ ๊ฐœ๋…๊ณผ ์˜ˆ์ œ

ํŒจํ‚ค์ง€ ์ž๋ฐ”์—์„œ๋Š” ํด๋ž˜์Šค๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํŒจํ‚ค์ง€์˜ ๋ฌผ๋ฆฌ์ ์ธ ํ˜•ํƒœ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํด๋”์ด๋‹ค. ํŒจํ‚ค์ง€๋Š” ๋‹จ์ˆœํžˆ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํด๋” ๊ธฐ๋Šฅ๋งŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํด๋ž˜์Šค์˜ ์ผ๋ถ€๋ถ„์ด๋‹ค. ํŒจํ‚ค์ง€๋Š” ํด๋ž˜์Šค๋ฅผ ์œ ์ผํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์‹๋ณ„์ž ์—ญํ• ์„ ํ•œ๋‹ค. ํŒจํ‚ค์ง€๋Š” ํด๋ž˜์Šค๋ฅผ ์œ ์ผํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์‹๋ณ„์ž ์—ญํ• ์„ ํ•œ๋‹ค. ํด๋ž˜์Šค ์ด๋ฆ„์ด ๋™์ผํ•˜๋”๋ผ๋„ ํŒจํ‚ค์ง€๊ฐ€ ๋‹ค๋ฅด๋ฉด ๋‹ค๋ฅธ ํด๋ž˜์Šค๋กœ ์ธ์‹ํ•œ๋‹ค. ํด๋ž˜์Šค์˜ ์ „์ฒด ์ด๋ฆ„์€ "ํŒจํ‚ค์ง€๋ช…+ํด๋ž˜์Šค๋ช…"์ธ๋ฐ, ํŒจํ‚ค์ง€๊ฐ€ ์ƒ/ํ•˜์œ„๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ๋‹ค๋ฉด ๋„ํŠธ(.)๋ฅผ ์ด์šฉํ•ด ํ‘œํ˜„ํ•œ๋‹ค. ์ƒ์œ„ํŒจํ‚ค์ง€.ํ•˜์œ„ํŒจํ‚ค์ง€.ํด๋ž˜์Šค ํด๋ž˜์Šค๋ฅผ ์ด๋™์‹œํ‚ฌ ๋•Œ๋Š” ํŒจํ‚ค์ง€ ์ „์ฒด๋ฅผ ์ด๋™์‹œ์ผœ์•ผ ํ•œ๋‹ค. ์ฆ‰, myPackage ๋‚ด์˜ myClass๋ฅผ yourPackage๋กœ ์˜ฎ๊ธด๋‹ค๋ฉด, ํ•ด๋‹น ํด๋ž˜์Šค๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค! ํŒจํ‚ค์ง€ ..

Tutorials/Java 2021. 9. 14. 16:47
6-1. ์ •์  ๋ฉค๋ฒ„์™€ static : ์ •์  ๋ฉ”์†Œ๋“œ, ์ •์  ์ดˆ๊ธฐํ™” ๋ธ”๋ก, ์‹ฑ๊ธ€ํ†ค

์ •์ (static) ์ •์  ๋ฉค๋ฒ„๋Š” ํด๋ž˜์Šค์— ๊ณ ์ •๋œ ๋ฉค๋ฒ„๋กœ์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•„๋“œ์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ๋งํ•œ๋‹ค. ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋กœ๋”ฉ๋˜๋ฉด ์ •์  ๋ฉค๋ฒ„๋ฅผ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ ๋„ํŠธ(.) ์—ฐ์‚ฐ์ž๋กœ ์ ‘๊ทผํ•œ๋‹ค. int a = myClass.value; myClass.doSomething(a); ์ •์  ์ดˆ๊ธฐํ™” ๋ธ”๋ก ์ •์  ํ•„๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•„๋“œ ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐ๊ฐ’์„ ์ฃผ๋Š” ๊ฒƒ์ด ๋ณดํ†ต์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ณ„์‚ฐ์ด ํ•„์š”ํ•œ ์ดˆ๊ธฐํ™” ์ž‘์—…์˜ ๊ฒฝ์šฐ, ์ •์  ๋ธ”๋ก(static block)์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. static { ... } ์ •์  ๋ธ”๋ก์€ ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋กœ๋”ฉ๋  ๋•Œ ์ž๋™์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค. ์ •์  ๋ธ”๋ก์€ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์„ ์–ธ๋˜์–ด๋„ ์ƒ๊ด€์—†๊ณ , ์„ ์–ธ๋œ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰๋œ๋‹ค. public class TV..

Tutorials/Java 2021. 9. 14. 15:02
5. ์ž๋ฐ” ์ฐธ์กฐ ํƒ€์ž… : ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ๋ฉ”๋ชจ๋ฆฌ

๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ primitive type๊ณผ reference type(์ฐธ์กฐ ํƒ€์ž…)์œผ๋กœ ๋‚˜๋‰œ๋‹ค. ์ฐธ์กฐ ํƒ€์ž…์ด๋ž€ ๊ฐ์ฒด์˜ ๋ฒˆ์ง€๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํƒ€์ž…์œผ๋กœ, ๋ฐฐ์—ด, ์—ด๊ฑฐ, ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค ํƒ€์ž…์ด ์ด์— ํ•ด๋‹น๋œ๋‹ค. ์ž๋ฐ”๋Š” ๋ฐฐ์—ด์˜ ์ฃผ์†Œ๋ฅผ ์Šคํƒ ์˜์—ญ์—, ์‹ค์ œ ๋ฐ์ดํ„ฐ ๊ฐ’์€ ํž™ ์˜์—ญ์— ํ• ๋‹นํ•œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ์˜์—ญ JVM์€ ์šด์˜์ฒด์ œ์—์„œ ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ(Runtime Data Area)๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ๋ถ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. 1. ๋ฉ”์†Œ๋“œ ์˜์—ญ : ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค(~.class)๋“ค์„ ํด๋ž˜์Šค ๋กœ๋”๋กœ ์ฝ์–ด ํด๋ž˜์Šค๋ณ„๋กœ ๋Ÿฐํƒ€์ž„ ์ƒ์ˆ˜ํ’€(runtime constant pool), ํ•„๋“œ(fiedl) ๋ฐ์ดํ„ฐ, ๋ฉ”์†Œ๋“œ(method) ๋ฐ์ดํ„ฐ, ๋ฉ”์†Œ๋“œ ์ฝ”๋“œ, ์ƒ์„ฑ์ž(constructor) ์ฝ”๋“œ ๋“ฑ์„ ๋ถ„๋ฅ˜ํ•ด์„œ ์ €์žฅํ•œ๋‹ค. ๋ฉ”์†Œ๋“œ ์˜..

Tutorials/Java 2021. 9. 14. 14:39
7. ํ”„๋ฆฌํŒน, ์ถฉ๋Œ ์ฒ˜๋ฆฌ(OnTrigger, OnCollision) ๋“ฑ : ์œ ๋‹ˆํ‹ฐ ํŠœํ† ๋ฆฌ์–ผ

ํ”„๋ฆฌํŒน ๊ฒŒ์ž„ ์˜ค๋ธŒํ…ํŠธ๋Š” ํ”„๋ฆฌํŒน์œผ๋กœ ๋งŒ๋“ค์–ด ์žฌํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งˆ์น˜, ์นผ์„ ์ฐ์–ด๋‚ด๋Š” ์ฃผ๋ฌผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค! ์‚ฌ์šฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค. Hierarchy์— ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ํ”„๋กœ์ ํŠธ ์ฐฝ์— ๋“œ๋ž˜๊ทธ&๋“œ๋ž ํ•ด์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค! Use Gravity ๋ฆฌ์ง€๋“œ ๋ฐ”๋”” ์ปดํฌ๋„ŒํŠธ์˜ Use Gravity ํ•„๋“œ๋ฅผ ํ•ด์ œํ•˜๋ฉด ์ค‘๋ ฅ์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค. transform ๋ณ€์ˆ˜ transform์€ ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ž์‹ ์˜ ํŠธ๋žœ์Šคํผ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ฐ”๋กœ ์ ‘๊ทผํ•˜๋Š” ์ง€๋ฆ„๊ธธ์ด๋‹ค! Destroy( ) void Start() { // ์ด๋™์— ์‚ฌ์šฉํ•  ๋ฆฌ์ง€๋“œ๋ฐ”๋”” ์ปดํฌ๋„ŒํŠธ ํ• ๋‹น bulletRigidbody = GetComponent(); // ๋ฆฌ์ง€๋“œ๋ฐ”๋””์˜ ์†๋„ = ์•ž์ชฝ ๋ฐฉํ–ฅ * ์ด๋™ ์†๋ ฅ bulletRigidbody.velocity = transform.forwa..

Game Dev/Unity : Tutorial 2021. 9. 4. 16:40
6. ๋จธํ‹ฐ๋ฆฌ์–ผ, GetAxis, Input.GetKey( ) : ์œ ๋‹ˆํ‹ฐ ํŠœํ† ๋ฆฌ์–ผ

๋จธํ‹ฐ๋ฆฌ์–ผ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์˜ ์ปฌ๋Ÿฌ๋Š” ๋จธํ‹ฐ๋ฆฌ์–ผ(Material)์ด ๊ฒฐ์ •ํ•œ๋‹ค. ๋จธํ‹ฐ๋ฆฌ์–ผ์€ ์…ฐ์ด๋”์™€ ํ…์Šค์ณ๊ฐ€ ํ•ฉ์ณ์ง„ ์—์…‹์œผ๋กœ, ์˜ค๋ธŒ์ ํŠธ์˜ ํ”ฝ์…€ ์ปฌ๋Ÿฌ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค ์…ฐ์ด๋”๋Š” ์ฃผ์–ด์ง„ ์ž…๋ ฅ์— ๋”ฐ๋ผ ํ”ฝ์…€์˜ ์ตœ์ข… ์ปฌ๋Ÿฌ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. ์…ฐ์ด๋”๋Š” ์งˆ๊ฐ๊ณผ ๋น›์— ์˜ํ•œ ๋ฐ˜์‚ฌ์™€ ๊ตด์ ˆ ๋“ฑ์˜ ํšจ๊ณผ๋ฅผ ๋งŒ๋“ ๋‹ค. ํ…์Šค์ฒ˜๋Š” ํ‘œ๋ฉด์— ์ž…ํžˆ๋Š” ์ด๋ฏธ์ง€ ํŒŒ์ผ์ด๋‹ค. ์…ฐ์ด๋”๋Š” ๋ฌผ๊ฐ์œผ๋กœ, ํ…์Šค์ฒ˜๋Š” ์Šค์ผ€์น˜๋‚˜ ๋ฐ‘๊ทธ๋ฆผ์œผ๋กœ ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค. ๋ฐ‘๊ทธ๋ฆผ์ด ๊ฐ™์•„๋„ ๋ฌผ๊ฐ์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ํ™”ํ’์ด ๋‹ฌ๋ผ์ง„๋‹ค! ์ด ์ค‘ ์•Œ๋ฒ ๋„(Albedo)๋Š” ๋ฐ˜์‚ฌ์œจ์ด๋ผ๋Š” ๋œป์œผ๋กœ, ๋ฌผ์ฒด๊ฐ€ ์–ด๋–ค ์ƒ‰์„ ๋ฐ˜์‚ฌํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค! C# ์Šคํฌ๋ฆฝํŠธ ์ด์ œ ๊ธฐ์ดˆ์ ์ธ ์ฝ”๋“œ๋“ค์„ ์‚ดํŽด๋ณด์ž. void FixedUpdate() { if (Input.GetKey(KeyCode.UpArrow) == true) { playerRig..

Game Dev/Unity : Tutorial 2021. 9. 3. 22:46
3. ์œ ๋‹ˆํ‹ฐ ์—”์ง„์ด ๋™์ž‘ํ•˜๋Š” ์›๋ฆฌ : ์œ ๋‹ˆํ‹ฐ ํŠœํ† ๋ฆฌ์–ผ

์ƒ์†? ๊ฐ์ฒด ์ง€ํ–ฅ์–ธ์–ด์—์„œ ์ƒ์†์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ์กด์— ๋งŒ๋“ค์–ด๋†“์€ ํ…œํ”Œ๋ฆฟ์„ ํ™•์žฅ/์ˆ˜์ •ํ•จ์œผ๋กœ์จ ๋น„์Šทํ•œ ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. (์ƒ์†์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅธ๋‹ค๋ฉด ์—ฌ๊ธฐ๋ฅผ) ๊ทธ๋Ÿฐ๋ฐ ์˜ˆ๋ฅผ ๋“ค์–ด, "HUMAN"์ด๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ํ•˜์ž. ๋งŒ์•ฝ ์ด ํด๋ž˜์Šค๋ฅผ ํ™•์žฅ์‹œ์ผœ ํ”Œ๋ ˆ์ด์–ด, NPC, ์‹ฌ์ง€์–ด ๋ชฌ์Šคํ„ฐ๊นŒ์ง€ ๋งŒ๋“ ๋‹ค๋ฉด ์–ด๋–จ๊นŒ? ๊ฐ๊ฐ์˜ ์˜ค๋ธŒ์ ํŠธ๋Š” ์„ฑ๊ฒฉ์ด ๋งค์šฐ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์˜คํžˆ๋ ค ์ƒ์†์„ ํ†ตํ•œ ์ž‘์—…์ด ํšจ์œจ์„ ๋–จ์–ด๋œจ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์ปดํฌ๋„ŒํŠธ ํŒจํ„ด์„ ์•Œ์•„์•ผ ํ•œ๋‹ค. ์ปดํฌ๋„ŒํŠธ ํŒจํ„ด ๊ธฐํš์ž๋Š” ๊ฒŒ์ž„์— ๋“ฑ์žฅํ•  ๋ชจ๋“  ๋™๋ฌผ์„ ์‚ฌ์ „์— ๊ธฐํšํ•  ์ˆ˜ ์—†๋‹ค. ์ฆ‰, ๋ถ€ํ’ˆ๋งˆ๋‹ค ๋Œ€ํ‘œ ๊ธฐ๋Šฅ์„ ๋ถ€์—ฌํ•˜๊ณ , ์—ฌ๋Ÿฌ ๋ถ€ํ’ˆ์„ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์— ์กฐํ•ฉํ•˜๋Š” ๋ฐฉ์‹์ด ํšจ์œจ์ ์ด๋‹ค! 1. ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฏธ๋ฆฌ ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“ค๊ธฐ 2. ๋นˆ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ 3. ์ฝ”๋ฟ”์†Œ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ ์™„์„ฑํ•˜..

Game Dev/Unity : Tutorial 2021. 9. 2. 21:19
2. ์œ ๋‹ˆํ‹ฐ ์ธํ„ฐํŽ˜์ด์Šค ๋‘˜๋Ÿฌ๋ณด๊ธฐ : ์œ ๋‹ˆํ‹ฐ ํŠœํ† ๋ฆฌ์–ผ

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์œ ๋‹ˆํ‹ฐ์˜ ๋Œ€๋žต์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์†Œ๊ฐœํ•œ๋‹ค. ์ธ์ŠคํŽ™ํ„ฐ ์ฐฝ ์ธ์ŠคํŽ™ํ„ฐ ์ฐฝ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ์žˆ๋‹ค. (๊ธฐ๋ณธ Cube ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋กœ ์„ค๋ช…) ํŠธ๋žœ์Šคํผ(Transform) : ์˜ค๋ธŒ์ ํŠธ์˜ 3์ฐจ์› ์ขŒํ‘œ์™€ ํฌ๊ธฐ, ํšŒ์ „์„ ์ง€์ •ํ•œ๋‹ค ๋ฉ”์‹œ ํ•„ํ„ฐ(Mesh Filter) : 3D ๋ฉ”์‹œ ํŒŒ์ผ์„ ๋ฐ›์•„ ์˜ค๋ธŒ์ ํŠธ์˜ ์™ธ๊ณฝ์„ ์„ ์ง€์ •ํ•œ๋‹ค ๋ฉ”์‹œ ๋ Œ๋”๋Ÿฌ(Mesh Renderer) : ๋ฉ”์‹œ๋ฅผ ๋”ฐ๋ผ ์ƒ‰์„ ์ฑ„์›Œ ๊ทธ๋ž˜ํ”ฝ ์™ธํ˜•์„ ๊ทธ๋ฆฐ๋‹ค ๋ฐ•์Šค ์ฝœ๋ผ์ด๋”(Box Collider) : ๋‹ค๋ฅธ ๋ฌผ์ฒด๊ฐ€ ๋ถ€๋”ช์น  ์ˆ˜ ์žˆ๋Š” ๋ฌผ๋ฆฌ์ ์ธ ํ‘œ๋ฉด์„ ๋งŒ๋“ ๋‹ค ์ฝ˜์†”์ฐฝ ์ฝ˜์†” ์ฐฝ์—์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ๋ฅผ ๋„์›Œ ํ…Œ์ŠคํŒ…์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. Clear : ๋กœ๊ทธ ์ง€์šฐ๊ธฐ Collapse : ๊ฐ™์€ ๋‚ด์šฉ์˜ ๋กœ๊ทธ๋ผ๋ฆฌ ๋ฌถ๊ธฐ Clear on Play : ์”ฌ์„ ํ•„๋ ˆ์ดํ•˜๊ธฐ ์ง์ „๊นŒ์ง€ ..

Game Dev/Unity : Tutorial 2021. 9. 2. 20:24