๐ŸŽฎ Unity

    [Unity] ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ฐ์ง€

    Update() ๋ฉ”์†Œ๋“œ ์ž…๋ ฅ์„ ๊ฐ์ง€ํ•˜๋ ค๋ฉด Update() ๋ฉ”์†Œ๋“œ์™€ input ํด๋ž˜์Šค์˜ ์ž…๋ ฅ ๊ฐ์ง€ ๋ฉ”์†Œ๋“œ ํ•„์š” Input ์‹คํ–‰ ์‹œ์ ์— ์–ด๋–ค ํ‚ค๋ฅผ ๋ˆŒ๋ €๋Š” ์ง€ ์•Œ๋ ค์คŒ Input.GetKey() ๋ฉ”์†Œ๋“œ๋Š” ํ‚ค๋ณด๋“œ์˜ ์‹๋ณ„์ž๋ฅผ KeyCode ํƒ€์ž…์œผ๋กœ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. bool Input.GetKey(KeyCode key); Input.GetKey(): ํ•ด๋‹น ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋Š” ๋™์•ˆ Input.GetKeyDown(): ํ•ด๋‹น ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋Š” ์ˆœ๊ฐ„

    [Unity] C# ํด๋ž˜์Šค์™€ ์˜ค๋ธŒ์ ํŠธ

    ํด๋ž˜์Šค ์ถ”์ƒํ™” ํ•  ๋Œ€์ƒ๊ณผ ๊ด€๋ จ๋œ ์ฝ”๋“œ(๋ณ€์ˆ˜์™€ ๋ฉ”์†Œ๋“œ)๋ฅผ ๋ฌถ๋Š” ํ‹€ ํด๋ž˜์Šค์˜ ํ•„๋“œ = ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ์ค‘์—์„œ ๋ณ€์ˆ˜ ์˜ค๋ธŒ์ ํŠธ - ์›๋ณธ ํด๋ž˜์Šค์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ ๊ฐ€๋Šฅ - ์˜ค๋ธŒ์ ํŠธ๋Š” ์„œ๋กœ ๋…๋ฆฝ์ ์ด๋ฉฐ ๊ตฌ๋ณ„ ๊ฐ€๋Šฅ ์ฐธ์กฐ(reference) ํƒ€์ž… - C#์—์„œ ํด๋ž˜์Šค๋กœ ๋งŒ๋“  ๋ณ€์ˆ˜๋Š” ์ฐธ์กฐ ํƒ€์ž… - ์ฐธ์กฐ ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋Š” ์‹ค์ฒดํ™” ๋œ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์•„๋‹˜ - ์ฐธ์กฐ ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— new๋ฅผ ์‚ฌ์šฉํ•ด ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ƒ์„ฑ - ์ฐธ์กฐ ํƒ€์ž…์€ ' ํ•œ ์‚ฌ๋žŒ์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณ„๋ช…์œผ๋กœ ๋ถ€๋ฅด๋Š” ์ƒํ™ฉ'์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ. - ์ฆ‰, ์˜ค๋ธŒ์ ํŠธ๋Š” ํ•˜๋‚˜์ง€๋งŒ ๊ทธ๊ฒƒ์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฐธ์กฐ ๋ณ€์ˆ˜๊ฐ€ ๋™์‹œ์— ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ์Œ. ๊ฐ’(value) ํƒ€์ž… - float, int, string ๋“ฑ์˜ C# ๋‚ด์žฅ๋ณ€์ˆ˜๋Š” ์ฐธ์กฐ๋กœ ๋™์ž‘ ..

    [Unity] C# ์ƒ์†๊ณผ ์ปดํฌ๋„ŒํŠธ ํŒจํ„ด

    ์ƒ์† - ๊ฒŒ์ž„ ์—”์ง„์€ ์ด๋ฏธ ์™„์„ฑ๋œ ๊ธฐ๋ฐ˜ ์ฝ”๋“œ๋ฅผ ์ œ๊ณต - ๊ฒŒ์ž„ ์—”์ง„์˜ ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ƒ์‚ฐ์„ฑ ์ƒ์Šน - ์œ ๋‹ˆํ‹ฐ์˜ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด ์ƒ์†์„ ์•Œ์•„์•ผ ํ•จ ์ƒ์†์˜ ํ•œ๊ณ„ ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•ด ์ž์‹ ํด๋ž˜์Šค์˜ ๊ธฐ์ดˆ ๊ตฌํ˜„์„ ๋Œ€์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ์ƒ์†์—๋งŒ ์˜์กดํ•˜๋ฉด ์˜คํžˆ๋ ค ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ํž˜๋“ค ์ˆ˜ ๋„ ์žˆ๋‹ค. ๋ถ€๋ชจ ํด๋ž˜์Šค๋Š” ์ž์‹ ํด๋ž˜์Šค์— ๊ณตํ†ต์ ์œผ๋กœ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ๋ฐ, ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๊ธฐ์กด ๊ธฐ๋Šฅ์ด ๋‚˜์ค‘์— ๊ตฌํ˜„ํ•œ ์ž์‹ ํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ๊ณผ ์˜คํžˆ๋ ค ์ถฉ๋Œํ•  ์ˆ˜ ์žˆ๋‹ค. → ์ปดํฌ๋„ŒํŠธ ํŒจํ„ด์„ ์‚ฌ์šฉํ•ด์•ผ ํ•จ ์ปดํฌ๋„ŒํŠธ ํŒจํ„ด Component Pattern ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ๋ถ€ํ’ˆ์„ ์กฐ๋ฆฝํ•˜์—ฌ ์™„์„ฑ๋œ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋นˆ ๊ป๋ฐ๊ธฐ์ธ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์— ์กฐ๋ฆฝํ•˜๋Š” ๋ฐฉ์‹ - ์œ ์—ฐํ•œ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. -..

    [Unity] ๋ฌผ์ฒด ์›€์ง์ด๊ธฐ

    โ€ป 2D์— 3D ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋„ฃ๊ฑฐ๋‚˜ 3D์— 2D ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋„ฃ์œผ๋ฉด ์ž‘๋™์ด ์•ˆ๋œ๋‹ค. 1. ์†๋ ฅ์„ ๋ฐ”๊พธ์–ด ๋ฌผ์ฒด ์›€์ง์ด๊ธฐ Rigidbody rigid; void Start() { rigid = GetComponent(); rigid.velocity = Vector3.right; // ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์†๋ ฅ์„ ๋ฐ›์Œ } public class MyBall : MonoBehaviour { Rigidbody rigid; void Start() { rigid = GetComponent(); } void FixedUpdate() { rigid.velocity = new Vector3(2, 4, 3); // ๋ฒกํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์†๋ ฅ ์ง€์ • ๊ฐ€๋Šฅ } } - velocity: ํ˜„์žฌ ์ด๋™ ์†๋„ โ€ป RigidBody ๊ด€๋ จ ์ฝ”๋“œ๋Š” FixedUp..

    [Unity] ๋ฌผ์ฒด ํ•„์ˆ˜ ์š”์†Œ

    Mesh, Material, Collider, RigidBody ํƒ„์„ฑ/๋งˆ์ฐฐ๋ ฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด? → Physics Material ์ถ”๊ฐ€ [Unity] ๋ฌผ๋ฆฌ ์žฌ์งˆ ๋งŒ๋“ค๊ธฐ - physics material: ํƒ„์„ฑ๊ณผ ๋งˆ์ฐฐ์„ ๋‹ค๋ฃจ๋Š” ๋ฌผ๋ฆฌ์ ์ธ ์žฌ์งˆ - physics material>Bounciness: ํƒ„์„ฑ๋ ฅ, ๋†’์„์ˆ˜๋ก ๋งŽ์ด ํŠ€์–ด์˜ค๋ฅธ๋‹ค - physics material>Bounce Combine: ๋‹ค์Œ ํƒ„์„ฑ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹ (๋ณดํ†ต Maximum ์‚ฌ.. asxpyn.tistory.com

    [Unity] ๋ฌผ๋ฆฌ ์žฌ์งˆ ๋งŒ๋“ค๊ธฐ

    - physics material: ํƒ„์„ฑ๊ณผ ๋งˆ์ฐฐ์„ ๋‹ค๋ฃจ๋Š” ๋ฌผ๋ฆฌ์ ์ธ ์žฌ์งˆ - physics material>Bounciness: ํƒ„์„ฑ๋ ฅ, ๋†’์„์ˆ˜๋ก ๋งŽ์ด ํŠ€์–ด์˜ค๋ฅธ๋‹ค - physics material>Bounce Combine: ๋‹ค์Œ ํƒ„์„ฑ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹ (๋ณดํ†ต Maximum ์‚ฌ์šฉ) - physics material>Friction: ๋งˆ์ฐฐ๋ ฅ, ๋‚ฎ์„ ์ˆ˜๋ก ๋งŽ์ด ๋ฏธ๋„๋Ÿฌ์ง - physics material>Friction Combine: ๋‹ค์Œ ๋งˆ์ฐฐ๋ ฅ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹. ex. (0,0,0,Minimum) ์‚ฌ์šฉ์‹œ ๋น™ํŒ ์• ๋‹ˆ๋ฉ”์ด์…˜์ฒ˜๋Ÿผ ์ญ‰ ๋ฏธ๋„๋Ÿฌ์ง โ€ป ์• ๋‹ˆ๋ฉ”์ด์…˜์Šค๋Ÿฌ์šด ๋Š๋‚Œ์„ ๋‚ด๊ณ  ์‹ถ์„ ๋•Œ, Friction Combine์€ ์ตœ์†Œ๋กœ, Bounciness ํ•ฉ์‚ฐ์€ ์ตœ๋Œ€๋กœ

    [Unity] ๋ฌผ์ฒด์— ์žฌ์งˆ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ

    - Material: ๋ฌผ์ฒด์˜ ํ‘œ๋ฉด ์žฌ์งˆ์„ ๊ฒฐ์ •ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ - Material > Metalic: ๊ธˆ์† ์žฌ์งˆ ์ˆ˜์น˜ - Material > Smoothness: ๋น› ๋ฐ˜์‚ฌ ์ˆ˜์น˜ ์ง์ ‘ ๊ทธ๋ฆฐ ๊ทธ๋ฆผ์ด๋‚˜ ์›๋ž˜ ์žˆ๋Š” ๊ทธ๋ฆผ์„ Assets ํด๋”์— ๋„ฃ์–ด ๋ฌผ์ฒด์— ์žฌ์งˆ์„ ๋„ฃ์–ด์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. (์ง์ ‘ ๋ฌผ์ฒด ์•ˆ์— ๋„ฃ์–ด์ฃผ๊ฑฐ๋‚˜ Material > Albedo ์™ผ์ชฝ์— ์ž‘์€ ์ •์‚ฌ๊ฐํ˜• ์ž๋ฆฌ์— ๋„ฃ์–ด์ฃผ๋ฉด ์ ์šฉ ๊ฐ€๋Šฅ) - Material > Tiling: ํ…์Šค์ณ ๋ฐ˜๋ณต ํƒ€์ผ ๊ฐœ์ˆ˜ - Material > Emission: ํ…์Šค์ณ ๋ฐœ๊ด‘(๋ฐ๊ธฐ) ์กฐ์ ˆ (๋น›์ด ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋‚˜์˜ค๋Š” ๊ฒƒ์€ X Only ์žฌ์งˆ ๋Š๋‚Œ, ๋น›์„ ๋‚ด์ฃผ๋Š” ๊ฑด Light ๋”ฐ๋กœ ์žˆ์Œ) ๋ฌผ์ฒด ํˆฌ๋ช…๋„ ์กฐ์ ˆํ•˜๋Š” ๋ฐฉ๋ฒ• - Rendering Mode > Transparent ์„ ํƒ ํ›„, Albedo ์—์„œ..

    [Unity] Rigidbody Component / Collider Component

    [Rigidbody Component] - Add Component๋ฅผ ๋ˆŒ๋Ÿฌ Rigidbody Component(๋ฌผ๋ฆฌ ํšจ๊ณผ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•œ ์ปดํฌ๋„ŒํŠธ)๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. -> ๋ฌผ์ฒด๊ฐ€ ์ค‘๋ ฅ์˜ ์˜ํ–ฅ์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค. โ€ป ์ด ๋•Œ Sphere Collider๋ฅผ ์ œ๊ฑฐํ•œ ๊ฒฝ์šฐ, ์ค‘๋ ฅ์˜ ์˜ํ–ฅ์„ ๋ฐ›๊ธดํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๋ฌผ์ฒด์™€์˜ ์ถฉ๋Œ์€ ์ด๋ค„์ง€์ง€ ์•Š๊ธฐ์— ๊ตฌ๊ฐ€ ํ‰๋ฉด์„ ํ†ต๊ณผํ•ด๋ฒ„๋ฆฐ๋‹ค. - RigidBody > Mass ์ˆ˜์น˜๊ฐ€ ๋†’์„ ์ˆ˜๋ก ์ถฉ๋Œ์ด ๋ฌด๊ฑฐ์›Œ์ง„๋‹ค. - RigidBody > Use Gravity๋กœ ์ค‘๋ ฅ์„ ๋ฐ›๋Š”์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. - RigidBody > Is Kinematic ์„ ์ฒดํฌ ์‹œ ์™ธ๋ถ€ ๋ฌผ๋ฆฌ ํšจ๊ณผ๋ฅผ ๋ฌด์‹œํ•œ๋‹ค. (๋‹ค๋ฅธ ๋ฌผ์ฒด์™€์˜ ์ถฉ๋Œ์ด ์ผ์–ด๋‚˜๋„ ์•„๋ฌด ์ผ X) → ์›€์ง์ด๋Š” ์žฅ์• ๋ฌผ์„ ๋งŒ๋“ค ๋•Œ ์œ ์šฉํ•จ [Sphere Collider] - Sphere C..