์ „์ฒด ๊ธ€

์ „์ฒด ๊ธ€

    [Swift] Class์™€ Inheritance(์ƒ์†)

    Inheritance A parent class = 'Superclass' A child class = 'Subclass' ์Šˆํผ ํด๋ž˜์Šค ์—†์ด ์ •์˜ํ•œ ํด๋ž˜์Šค = 'Base class' class Bicycle: Vehicle { var hasBasket = false } let bicycle = Bicycle() bicycle.hasBasket = true Override property์™€ method๋Š” ์˜ค๋ฒ„๋ผ์ด๋“œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์›๋ž˜ ์žˆ๋˜ ์†์„ฑ์— ์˜ฌ๋ผํƒ€์„œ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Œ. ํ•จ์ˆ˜ ์ด๋ฆ„ ์˜†์— override ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์ด๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅ. class Train: Vehicle{ override func makeNoice(){ print("Choo Choo!") } } Reference class Person{ le..

    [Unity] Player ๋ฐฉํ–ฅํ‚ค๋กœ ์›€์ง์ด๊ธฐ / Animation ์„ค์ •

    Unity๋ฅผ ์ตํžˆ๋Š” ์ „๊ณต ์ˆ˜์—…์ธ 3D์Šคํฌ๋ฆฝํŠธํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŒ€ ํ”„๋กœ์ ํŠธ๋กœ ์ง„ํ–‰ํ•œ KATNIP - Astro Cat์—์„œ ๊ตฌํ˜„ํ–ˆ๋˜ ๊ฒƒ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. Unity๋ฅผ ๋˜ ์–ธ์ œ ์“ธ์ง€๋Š” ๋ชจ๋ฅด์ง€๋งŒ ๊นŒ๋จน๊ธฐ์—๋Š” ์•„๊นŒ์šด ํ”„๋กœ์ ํŠธ์ด๋‹ค. ๊ฒŒ์ž„์˜ ๊ธฐ๋ณธ์ธ ํ”Œ๋ ˆ์ด์–ด์˜ ์กฐ์ž‘๋ฒ•์„ ๊ตฌํ˜„ํ•˜๊ฒ ๋‹ค. ๋ฐฉํ–ฅํ‚ค๋กœ ์›€์ง์ด๊ณ , ์ŠคํŽ˜์ด์Šค ๋ฐ”๋ฅผ ๋ˆ„๋ฅด๋ฉด Jumpํ•˜๋Š” Player๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ! Player์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ปจํŠธ๋กคํ•˜๊ธฐ ์œ„ํ•ด Animator Controller๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. Unity Asset์„ ๊ตฌ๋งคํ•˜๋ฉด, ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋“ค์–ด์žˆ์„ ํ…๋ฐ ๊ทธ ์ค‘ ์‚ฌ์šฉํ•  ์• ๋‹ˆ๋ฉ”์ด์…˜๋งŒ ๋ณต๋ถ™ํ•ด์„œ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค. Walk ์• ๋‹ˆ๋ฉ”์ด์…˜์€ isWalk ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ, Jump ์• ๋‹ˆ๋ฉ”์ด์…˜์€ doJump ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ด์šฉํ•œ๋‹ค. ๊ธฐ๋ณธ ๋ชจ์…˜์ธ idleA ์• ๋‹ˆ๋ฉ”์ด์…˜์€ E..

    [Unity] Update()

    Update() Update()๋Š” ํ™”๋ฉด์ด ํ•œ๋ฒˆ ๊ฐฑ์‹ ๋  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰. ์ฆ‰, ๋งˆ์ง€๋ง‰ Update()๊ฐ€ ์‹คํ–‰ ๋œ ์‹œ์ ๊ณผ ํ˜„์žฌ Update()๊ฐ€ ์‹คํ–‰๋œ ์‹œ์  ์‚ฌ์ด์˜ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์ด ํ”„๋ ˆ์ž„์ด ์ƒˆ๋กœ ๊ทธ๋ ค์ง€๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด๋‹ค. Time.deltaTIme Update() ์‹คํ–‰ ์‚ฌ์ด์˜ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์„ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ. ์ดˆ๋‹น ํ”„๋ ˆ์ž„์€ ์ปดํ“จํ„ฐ ์„ฑ๋Šฅ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค. Instantiate() ์‹ค์‹œ๊ฐ„์œผ๋กœ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉ Instantiate(์›๋ณธObject, transform.position, transform.rotation);

    [Unity] ์˜ค๋ธŒ์ ํŠธ ๊ฐ„ ์ถฉ๋Œ ์ฒ˜๋ฆฌ

    ์ถฉ๋Œ ์ด๋ฒคํŠธ ๋ฉ”์„œ๋“œ OnCollision ๊ณ„์—ด: ์ผ๋ฐ˜ ์ถฉ๋Œ ์ผ๋ฐ˜์ ์ธ ์ฝœ๋ผ์ด๋”๋ฅผ ๊ฐ€์ง„ ๋‘ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์ถฉ๋Œํ•  ๋•Œ ์ž๋™์œผ๋กœ ์‹คํ–‰. ์ถฉ๋Œํ•œ ๋‘ ์ฝœ๋ผ์ด๋”๋Š” ์„œ๋กœ ํ†ต๊ณผํ•˜์ง€ ์•Š๊ณ  ๋ฐ€์–ด๋ƒ„. - OnCollsionEnter(Collision collsion): ์ถฉ๋Œํ•œ ์ˆœ๊ฐ„ - OnCollisionStay(Collision collision): ์ถฉ๋Œํ•˜๋Š” ๋™์•ˆ - OnCollisionExit(Collision collision): ์ถฉ๋Œํ–ˆ๋‹ค๊ฐ€ ๋ถ„๋ฆฌ๋˜๋Š” ์ˆœ๊ฐ„ OnTrigger ๊ณ„์—ด: ํŠธ๋ฆฌ๊ฑฐ ์ถฉ๋Œ ์ถฉ๋Œํ•œ ๋‘ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์˜ ์ฝœ๋ผ์ด๋” ์ค‘ ์ตœ์†Œ ํ•˜๋‚˜๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ ์ฝœ๋ผ์ด๋”๋ผ๋ฉด ์ž๋™์œผ๋กœ ์‹คํ–‰ ์ด ๊ฒฝ์šฐ ๋‘ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์ถฉ๋Œํ–ˆ์„ ๋•Œ ์„œ๋กœ ๊ทธ๋Œ€๋กœ ํ†ต๊ณผ - OnTriggerEnter(Collider collsion): ์ถฉ๋Œํ•œ ์ˆœ๊ฐ„ - O..

    [Unity] Rigidbody์˜ AddForce()์™€ velocity

    Rigidbody์˜ AddForce()์™€ velocity ์ฐจ์ด์  - AddForce() ๋ฉ”์†Œ๋“œ๋Š” ํž˜์„ ๋ˆ„์ ํ•˜๊ณ  ์†๋ ฅ์„ ์ ์ง„์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. - Rigidbody์˜ velocity๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ์ด์ „ ์†๋„๋ฅผ ์ง€์šฐ๊ณ  ์ƒˆ๋กœ์šด ์†๋„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ → ๊ด€์„ฑ ๋ฌด์‹œํ•˜๊ณ  ์†๋„ ์ฆ‰์‹œ ๋ณ€๊ฒฝ

    [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 ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ๋ถ€ํ’ˆ์„ ์กฐ๋ฆฝํ•˜์—ฌ ์™„์„ฑ๋œ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋นˆ ๊ป๋ฐ๊ธฐ์ธ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์— ์กฐ๋ฆฝํ•˜๋Š” ๋ฐฉ์‹ - ์œ ์—ฐํ•œ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. -..