๋ชฉ๋ก์ ์ฒด ๊ธ (1104)
KoreanFoodie's Study

๋ฐ์ดํฐ ํ์ ๋ฐ์ดํฐ ํ์ ์ primitive type๊ณผ reference type(์ฐธ์กฐ ํ์ )์ผ๋ก ๋๋๋ค. ์ฐธ์กฐ ํ์ ์ด๋ ๊ฐ์ฒด์ ๋ฒ์ง๋ฅผ ์ฐธ์กฐํ๋ ํ์ ์ผ๋ก, ๋ฐฐ์ด, ์ด๊ฑฐ, ํด๋์ค, ์ธํฐํ์ด์ค ํ์ ์ด ์ด์ ํด๋น๋๋ค. ์๋ฐ๋ ๋ฐฐ์ด์ ์ฃผ์๋ฅผ ์คํ ์์ญ์, ์ค์ ๋ฐ์ดํฐ ๊ฐ์ ํ ์์ญ์ ํ ๋นํ๋ค. ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ์์ญ JVM์ ์ด์์ฒด์ ์์ ํ ๋น๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ(Runtime Data Area)๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ๋ถํด์ ์ฌ์ฉํ๋ค. 1. ๋ฉ์๋ ์์ญ : ์ฝ๋์์ ์ฌ์ฉ๋๋ ํด๋์ค(~.class)๋ค์ ํด๋์ค ๋ก๋๋ก ์ฝ์ด ํด๋์ค๋ณ๋ก ๋ฐํ์ ์์ํ(runtime constant pool), ํ๋(fiedl) ๋ฐ์ดํฐ, ๋ฉ์๋(method) ๋ฐ์ดํฐ, ๋ฉ์๋ ์ฝ๋, ์์ฑ์(constructor) ์ฝ๋ ๋ฑ์ ๋ถ๋ฅํด์ ์ ์ฅํ๋ค. ๋ฉ์๋ ์..

๋ฒกํฐ ๋ฒกํฐ๋ ๋ฐฉํฅ๊ณผ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ค. ๋ฒกํฐ (1, 0, 2)์ด ์์๋, ํด๋น ๋ฒกํฐ์ ํฌ๊ธฐ๋ sqrt(1^2 + 2^2)์ด ๋๋ค. ์ ๋ํฐ๋ Vector2, Vector3, Vector4 ํ์ ์ ์ง์ํ๋ค. ์๋ก์ด ๋ฒกํฐ๋ฅผ ๋ง๋ค ๋๋ ์์ฑ์๋ฅผ ํธ์ถํ๋ฉด ๋๋ค. // Vector๋ ํด๋์ค๊ฐ ์๋๋ผ ๊ตฌ์กฐ์ฒด์ด๋ค! public struct Vector3 { public float x; public float y; public float z; // Vector3 ๋ด๋ถ ์ฝ๋ } Vector3 a = new Vector3(0, 0, 0); Vector3 b = a; b.x = 100; ๋ฒกํฐ์ ์ฐ์ฐ ๋ด์ ๊ณผ ์ธ์ ์ ์๋ฏธ๋ฅผ ์ดํดํ๋ ๊ฒ์ด ์ค์ํ๋ค. ๋ฐฑํฐ์ ๋ด์ ์ Dot Product๋ผ๊ณ ํ๋๋ฐ, a · b ๋ผ๊ณ ํ๋ฉด, ๋ฒกํฐ b๋ฅผ a์..

๋ฐ๋ฅ ํ์ Rotate( ) ๋ฉ์๋๋ฅผ ์ด์ฉํด์ ๋ฌผ์ฒด๋ฅผ ํ์ ์ํฌ ์ ์๋ค. public class Rotator : MonoBehaviour { public float rotationSpeed = 60f; // Update is called once per frame void Update() { transform.Rotate(0f, rotationSpeed * Time.deltaTime, 0f); } } ์์์ rotationSpeed์ Time.deltaTime์ ๊ณฑํฉ์ผ๋ก์จ, ์ด๋ค ๊ธฐ๊ธฐ์์๋ ์์ ์ ์ผ๋ก 1์ด๋ง๋ค rotationSpeed๋งํผ์ ๊ฐ๋์ ํ์ ์ ์ค ์ ์๋ค. Update( ) ๋ 1ํ๋ ์๋ง๋ค ์คํ๋๋ฉฐ, Time.deltaTime์ ( 1 / ์ด๋น ํ๋ ์ ์)์ด๋ฏ๋ก, ํ๋ ์์ด 60์ด๋ 120์ด๋ ..

ํ๋ฆฌํน ๊ฒ์ ์ค๋ธํ ํธ๋ ํ๋ฆฌํน์ผ๋ก ๋ง๋ค์ด ์ฌํ์ฉํ ์ ์๋ค. ๋ง์น, ์นผ์ ์ฐ์ด๋ด๋ ์ฃผ๋ฌผ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค! ์ฌ์ฉ๋ฒ์ ๊ฐ๋จํ๋ค. Hierarchy์ ์๋ ์ค๋ธ์ ํธ๋ฅผ ํ๋ก์ ํธ ์ฐฝ์ ๋๋๊ทธ&๋๋ ํด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋๋ค! Use Gravity ๋ฆฌ์ง๋ ๋ฐ๋ ์ปดํฌ๋ํธ์ Use Gravity ํ๋๋ฅผ ํด์ ํ๋ฉด ์ค๋ ฅ์ ์ํฅ์ ๋ฐ์ง ์๋๋ค. transform ๋ณ์ transform์ ์คํฌ๋ฆฝํธ์์ ์์ ์ ํธ๋์คํผ ์ปดํฌ๋ํธ๋ก ๋ฐ๋ก ์ ๊ทผํ๋ ์ง๋ฆ๊ธธ์ด๋ค! Destroy( ) void Start() { // ์ด๋์ ์ฌ์ฉํ ๋ฆฌ์ง๋๋ฐ๋ ์ปดํฌ๋ํธ ํ ๋น bulletRigidbody = GetComponent(); // ๋ฆฌ์ง๋๋ฐ๋์ ์๋ = ์์ชฝ ๋ฐฉํฅ * ์ด๋ ์๋ ฅ bulletRigidbody.velocity = transform.forwa..

๋จธํฐ๋ฆฌ์ผ ๊ฒ์ ์ค๋ธ์ ํธ์ ์ปฌ๋ฌ๋ ๋จธํฐ๋ฆฌ์ผ(Material)์ด ๊ฒฐ์ ํ๋ค. ๋จธํฐ๋ฆฌ์ผ์ ์ ฐ์ด๋์ ํ ์ค์ณ๊ฐ ํฉ์ณ์ง ์์ ์ผ๋ก, ์ค๋ธ์ ํธ์ ํฝ์ ์ปฌ๋ฌ๋ฅผ ๊ฒฐ์ ํ๋ค ์ ฐ์ด๋๋ ์ฃผ์ด์ง ์ ๋ ฅ์ ๋ฐ๋ผ ํฝ์ ์ ์ต์ข ์ปฌ๋ฌ๋ฅผ ๊ฒฐ์ ํ๋ ์ฝ๋์ด๋ค. ์ ฐ์ด๋๋ ์ง๊ฐ๊ณผ ๋น์ ์ํ ๋ฐ์ฌ์ ๊ตด์ ๋ฑ์ ํจ๊ณผ๋ฅผ ๋ง๋ ๋ค. ํ ์ค์ฒ๋ ํ๋ฉด์ ์ ํ๋ ์ด๋ฏธ์ง ํ์ผ์ด๋ค. ์ ฐ์ด๋๋ ๋ฌผ๊ฐ์ผ๋ก, ํ ์ค์ฒ๋ ์ค์ผ์น๋ ๋ฐ๊ทธ๋ฆผ์ผ๋ก ์ดํดํ๋ฉด ๋๋ค. ๋ฐ๊ทธ๋ฆผ์ด ๊ฐ์๋ ๋ฌผ๊ฐ์ ์ข ๋ฅ์ ๋ฐ๋ผ ํํ์ด ๋ฌ๋ผ์ง๋ค! ์ด ์ค ์๋ฒ ๋(Albedo)๋ ๋ฐ์ฌ์จ์ด๋ผ๋ ๋ป์ผ๋ก, ๋ฌผ์ฒด๊ฐ ์ด๋ค ์์ ๋ฐ์ฌํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ค! C# ์คํฌ๋ฆฝํธ ์ด์ ๊ธฐ์ด์ ์ธ ์ฝ๋๋ค์ ์ดํด๋ณด์. void FixedUpdate() { if (Input.GetKey(KeyCode.UpArrow) == true) { playerRig..

๋ชฉํ : ์ฌ์ ํ๋ธ๋ฅผ ํ๋ ๋ง๋ค๊ณ , ์ฝ๋๋ก ํด๋น ํ๋ธ๊ฐ ์ ํํ๊ฒ ๋ง๋ค์ด ๋ณด์! 1. Hierarchy ํญ์์ 3D Object ํ๋ธ๋ฅผ ํ๋ ์์ฑํ๊ธฐ 2. ๋ณ์๋ก ๋ฆฌ์ง๋ ๋ฐ๋ ์ปดํฌ๋ํธ ์ฌ์ฉํ๊ธฐ (Inspector -> Add Component) 3. ํ๋ก์ ํธ ์ฐฝ์์ Create > C# Script ํด๋ฆญ, ์ด๋ฆ์ Jumper๋ก ๋ณ๊ฒฝํ ํ ์ด๊ธฐ! C#์์๋ ์ด๊ธฐ ํ์ผ ์ด๋ฆ๊ณผ ๋์ผํ ํด๋์ค๊ฐ ์์ฑ๋๋ฏ๋ก, ์ด๋ฆ์ ์ ๋ง์ถ์ด ์ฃผ์ด์ผ ํ๋ค. using System.Collections; using System.Collections.Generic; using UnityEngine; public class Jumper : MonoBehaviour { public Rigidbody myRigidbody; // Start..

์์? ๊ฐ์ฒด ์งํฅ์ธ์ด์์ ์์์ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด์ ๋ง๋ค์ด๋์ ํ ํ๋ฆฟ์ ํ์ฅ/์์ ํจ์ผ๋ก์จ ๋น์ทํ ํ ํ๋ฆฟ์ ๋ง๋ค ์ ์๋ค. (์์์ ๋ํด ์ ๋ชจ๋ฅธ๋ค๋ฉด ์ฌ๊ธฐ๋ฅผ) ๊ทธ๋ฐ๋ฐ ์๋ฅผ ๋ค์ด, "HUMAN"์ด๋ผ๋ ํด๋์ค๋ฅผ ๋ง๋ค์๋ค๊ณ ํ์. ๋ง์ฝ ์ด ํด๋์ค๋ฅผ ํ์ฅ์์ผ ํ๋ ์ด์ด, NPC, ์ฌ์ง์ด ๋ชฌ์คํฐ๊น์ง ๋ง๋ ๋ค๋ฉด ์ด๋จ๊น? ๊ฐ๊ฐ์ ์ค๋ธ์ ํธ๋ ์ฑ๊ฒฉ์ด ๋งค์ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์คํ๋ ค ์์์ ํตํ ์์ ์ด ํจ์จ์ ๋จ์ด๋จ๋ฆด ์ ์๋ค. ๋ฐ๋ผ์, ์ปดํฌ๋ํธ ํจํด์ ์์์ผ ํ๋ค. ์ปดํฌ๋ํธ ํจํด ๊ธฐํ์๋ ๊ฒ์์ ๋ฑ์ฅํ ๋ชจ๋ ๋๋ฌผ์ ์ฌ์ ์ ๊ธฐํํ ์ ์๋ค. ์ฆ, ๋ถํ๋ง๋ค ๋ํ ๊ธฐ๋ฅ์ ๋ถ์ฌํ๊ณ , ์ฌ๋ฌ ๋ถํ์ ๊ฒ์ ์ค๋ธ์ ํธ์ ์กฐํฉํ๋ ๋ฐฉ์์ด ํจ์จ์ ์ด๋ค! 1. ์ปดํฌ๋ํธ๋ฅผ ๋ฏธ๋ฆฌ ์ฌ๋ฌ ๊ฐ ๋ง๋ค๊ธฐ 2. ๋น ๊ฒ์ ์ค๋ธ์ ํธ ์์ฑํ๊ธฐ 3. ์ฝ๋ฟ์ ๊ฒ์ ์ค๋ธ์ ํธ ์์ฑํ..

์ด๋ฒ ๊ธ์์๋ ์ ๋ํฐ์ ๋๋ต์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์๊ฐํ๋ค. ์ธ์คํํฐ ์ฐฝ ์ธ์คํํฐ ์ฐฝ์๋ ๋ค์๊ณผ ๊ฐ์ ์ปดํฌ๋ํธ๊ฐ ์ถ๊ฐ๋์ด ์๋ค. (๊ธฐ๋ณธ Cube ๊ฒ์ ์ค๋ธ์ ํธ๋ก ์ค๋ช ) ํธ๋์คํผ(Transform) : ์ค๋ธ์ ํธ์ 3์ฐจ์ ์ขํ์ ํฌ๊ธฐ, ํ์ ์ ์ง์ ํ๋ค ๋ฉ์ ํํฐ(Mesh Filter) : 3D ๋ฉ์ ํ์ผ์ ๋ฐ์ ์ค๋ธ์ ํธ์ ์ธ๊ณฝ์ ์ ์ง์ ํ๋ค ๋ฉ์ ๋ ๋๋ฌ(Mesh Renderer) : ๋ฉ์๋ฅผ ๋ฐ๋ผ ์์ ์ฑ์ ๊ทธ๋ํฝ ์ธํ์ ๊ทธ๋ฆฐ๋ค ๋ฐ์ค ์ฝ๋ผ์ด๋(Box Collider) : ๋ค๋ฅธ ๋ฌผ์ฒด๊ฐ ๋ถ๋ช์น ์ ์๋ ๋ฌผ๋ฆฌ์ ์ธ ํ๋ฉด์ ๋ง๋ ๋ค ์ฝ์์ฐฝ ์ฝ์ ์ฐฝ์์๋ ์ฌ์ฉ์๊ฐ ๋ก๊ทธ๋ฅผ ๋์ ํ ์คํ ์ ์งํํ ์ ์๋ค. Clear : ๋ก๊ทธ ์ง์ฐ๊ธฐ Collapse : ๊ฐ์ ๋ด์ฉ์ ๋ก๊ทธ๋ผ๋ฆฌ ๋ฌถ๊ธฐ Clear on Play : ์ฌ์ ํ๋ ์ดํ๊ธฐ ์ง์ ๊น์ง ..

์์ฆ ์ ๊ฐ ์ธ๋๋ค์์์ด ๊ณต๋ถ๋ฅผ ํ๊ณ ์๋๋ฐ์, ์๋ฌด๋๋ ์ฐ๋ฆฌ ๋๋ผ์์๋ ๋ง์ ์ฌ๋๋ค์ด ๊ณต๋ถํ์ง ์๋ ์ธ์ด๋ค ๋ณด๋ ํ์ต ์๋ฃ๋ฅผ ์ฐพ๊ธฐ๊ฐ ์ฝ์ง ์์ต๋๋ค ใ ์ ๋ 'The ๋ฐ๋ฅธ ์ธ๋๋ค์์์ด' ์๋ฆฌ์ฆ๋ก ๋ ํ์ ์งํํ๊ณ ์๋๋ฐ์, Step 1์ ๊ณต๋ถํ๋ ๊ณผ์ ์์ ํ์ตํ ๋จ์ด๋ค๊ณผ ๋ฌธ์ฅ๋ค์ ๊ณต๋ถํ์ค ์ ์๋๋ก ์์ ํ์ผ๋ก ๋ง๋ค์ด ๋ณด์์ต๋๋ค! https://drive.google.com/drive/folders/1VE9mqLhACuVg_SJnv-GHR0ATAhZVCpsl?usp=sharing ์ธ๋๋ค์์ ๊ณต๋ถ - Google Drive ์ด ํด๋์ ํ์ผ์ด ์์ต๋๋ค.์ด ํด๋์ ํ์ผ์ ์ถ๊ฐํ๋ ค๋ฉด ๋ก๊ทธ์ธํ์ธ์. drive.google.com ๊ตฌ๊ธ ๋๋ผ์ด๋ธ์ ๊ณต์ ํด ๋์๊ตฌ์, ํด๋น ์์ ํ์ผ์ ์ด์ฉํ์ ์ ๋จ์ด์ฅ๋ ๋ง๋ค์ด ์ ํ๋ก ํ ..
