c#

    [Unity] ๋งˆ์šฐ์Šค๋กœ ์˜ค๋ธŒ์ ํŠธ ํด๋ฆญ ์‹œ ์ธ์‹ํ•˜๊ธฐ

    ๋งˆ์šฐ์Šค๋กœ ์บ๋ฆญํ„ฐ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์บ๋ฆญํ„ฐ๋ฅผ ์ธ์‹ํ•˜๊ณ  ํŠน์ • ๋Œ€์‚ฌ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ๋‚˜.. ๋งํ’์„ ์„ ๋ณด๋ฉด ์ฃผ๋ฏผ์„ ๋งˆ์šฐ์Šค๋กœ ํด๋ฆญํ•ด ๋ง์„ ๊ฑธ๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜จ๋‹ค. ์ฒœ์‚ฌ์ฃผ๋ฏผ, ์•…๋งˆ์ฃผ๋ฏผ์„ ๊ฐ๊ฐ ํด๋ฆญํ•˜๋ฉด ๋‹ค๋ฅธ ๋งํ’์„ ์ด ๋‚˜ํƒ€๋‚œ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๋งˆ์šฐ์Šค๋กœ ๋ฌผ์ฒด๋ฅผ ํด๋ฆญํ•˜๊ณ , ์ด๋ฅผ ์ธ์‹ํ•ด ๋ฌผ์ฒด๋ฅผ ํŒ๋ณ„ํ•˜์—ฌ ๋ช…๋ น์„ ์ค„ ์ˆ˜ ์žˆ์„๊นŒ? ๋ฐ”๋กœ RaycastHit์™€ tag๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. Raycast๋ž€ Raycast ์Šคํฌ๋ฆฝํŒ…์„ ๊ฐ€์ง„ ๊ฒŒ์ž„์˜ค๋ธŒ์ ํŠธ์˜ ์›์ ์—์„œ ๋‚ด๊ฐ€ ์„ค์ •ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ Ray(๋ˆˆ์— ๋ณด์ด์ง€ ์•Š๋Š” ๊ด‘์„ )๋ฅผ ๋‚ ๋ ค ํŠน์ • ๊ฑฐ๋ฆฌ ์ด๋‚ด์— ๋ฌผ์ฒด์˜ ์ถฉ๋Œ๊ฐ์ง€๋ฅผ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๋•Œ Ray๋ฅผ ๋งˆ์šฐ์Šค์˜ ํฌ์ง€์…˜์œผ๋กœ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋งˆ์šฐ์Šค๋กœ ํด๋ฆญ ํ›„ ๋ฌผ์ฒด ๊ฐ์ง€๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. // ๋งˆ์šฐ์Šค๋กœ ํด๋ฆญํ•ด์„œ ์ธ์‹ ํ›„ ๋Œ€ํ™” Ray ray = Camera.main.Scr..

    [Unity] ์•„์ดํ…œ ๊ตฌํ˜„ํ•˜๊ธฐ

    โ€ป ์ด์ „ ๊ธ€์—์„œ ์ž‘์„ฑํ•œ ๊ธ€์˜ ์—ฐ์žฅ์„ ์ž…๋‹ˆ๋‹ค. [Unity] ๋งํ’์„  UI ์ ์šฉํ•˜๊ณ  ๋Œ€ํ™”์ฐฝ ๊ตฌํ˜„ํ•˜๊ธฐ(Astro Cat) Point Light๋กœ ํฌ์ธํŠธ ๋น›์„ ์ค€๋‹ค. ๋น›์˜ ์ƒ‰๊น”, range, intensity ๋ฅผ ํ†ตํ•ด ์›ํ•˜๋Š” ๋Œ€๋กœ object์— ํฌ์ธํŠธ ๋น›์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค. ํ™•์‹คํžˆ ๊ฐ•์กฐ๊ฐ€ ๋œ๋‹ค. ์•„์ดํ…œ์„ ์ด์ œ ํ˜ผ์ž์„œ๋„ ๋น™๊ธ€๋น™๊ธ€ ๋Œ์•„๊ฐ€๊ฒŒ ํ•ด๋ณด์ž. ์•„์ดํ…œ object์— object๋ฅผ ๋น™๊ธ€๋น™๊ธ€ ๋Œ๋ฆฌ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค. (๋‹น์—ฐํ•œ ๋ง ํ•˜๊ธฐ) public bool isAnimated = false; public bool isRotating = false; public Vector3 rotationAngle; public float rotationSpeed; void Update () { if(isAnimated){ if..

    [Unity] ๋งํ’์„  UI ์ ์šฉํ•˜๊ณ  ๋Œ€ํ™”์ฐฝ ๊ตฌํ˜„ํ•˜๊ธฐ

    ๊ฒŒ์ž„ ๋‚ด์—์„œ ์ •๋ณด๋ฅผ ์•Œ๋ ค์ฃผ๊ฑฐ๋‚˜ NPC๋“ค๊ณผ ๋Œ€ํ™” ์‹œ ์‚ฌ์šฉํ•˜๋Š” ๋งํ’์„  UI Astro Cat ๊ฒŒ์ž„ ์ง„ํ–‰์—์„œ ์•„์ฃผ ํ†กํ†กํ•œ ์—ญํ• ์„ ํ•ด์ค€ ๋งํ’์„  UI๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹น ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ๊ฒŒ์ž„์˜ ๋งํ’์„ ์„ ๋„˜๊ธฐ๋Š” ์กฐ๊ฑด์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 1. ์ฒซ๋ฒˆ์งธ ๋งํ’์„ ์„ ํด๋ฆญํ•˜๋ฉด ๋‘๋ฒˆ์งธ ๋งํ’์„ ์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค. 2. ๋‘๋ฒˆ์งธ ๋งํ’์„ ์„ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ๋งํ’์„ ์ด ์‚ฌ๋ผ์ง€๊ณ  ์šฉ์ด ์ค€ ์•„์ดํ…œ์ด ๋‚˜ํƒ€๋‚œ๋‹ค. 3. ์šฉ์ด ์ค€ ์•„์ดํ…œ์„ Player๊ฐ€ Getํ•˜๋ฉด ์„ธ ๋ฒˆ์งธ ๋งํ’์„ ์ด ๋‚˜ํƒ€๋‚œ๋‹ค. โ€ป ๋Œ€ํ™”์ฐฝ UI๋Š” ๊ธ€ ๋งจ ์•„๋ž˜ ์—์…‹์„ ์ฐธ๊ณ ํ•˜์‹œ๋ผ ๋Œ€ํ™”์ฐฝ์—์„œ ์ฐฝ์„ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋Š” talkPanel์„ ์‚ดํŽด๋ณด๊ฒ ๋‹ค. Unity ํ•˜์ด์–ด๋ผํ‚ค์— UI>Canvas๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ  ๊ทธ ์•„๋ž˜ ๋‹ค์Œ๊ณผ ๊ฐ™์ด UI>Image๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. Canvas๋ฅผ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ๊ฒŒ์ž„ ๋‚ด UI๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ง..

    [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] ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ฐ์ง€

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