๐Ÿ’ป My Work/๐ŸŽฎ Unity 6

[์œ ๋‹ˆํ‹ฐ] 2D ํŠน์ • ๋ฒ”์œ„ ๋‚ด์˜ ๋žœ๋คํ•œ ์œ„์น˜์— ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

์•„๋ž˜ ๊ธ€์„ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. [Unity] ํŠน์ • ๋ฒ”์œ„ ๋‚ด์—์„œ ๋žœ๋คํ•œ ์œ„์น˜์— ์˜ค๋ธŒ์ ํŠธ ์Šคํฐํ•˜๊ธฐ unity์—์„œ ํŠน์ • ๋ฒ”์œ„ ๋‚ด์— ๋žœ๋คํ•œ ์œ„์น˜์— ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ์„  unity์—์„œ ์›ํ•˜๋Š” ๋ฒ”์œ„๋ฅผ ํŠน์ •ํ•ด๋ด…์‹œ๋‹ค. .png) ์ €๋Š” ์ด Plane ์˜ค๋ธŒ์ ํŠธ ์œ„์—์„œ ๋žœ๋คํ•œ ์œ„์น˜์— ์บก์Š์ด ์ƒ์„ฑ velog.io ๐Ÿ“Œ ๋ฒ”์œ„ ์ง€์ • ์›ํ•˜๋Š” ๋ฒ”์œ„๋ฅผ ์ฝœ๋ผ์ด๋”๋กœ ์ •ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ“Œ ๋žœ๋คํ•œ ์œ„์น˜ ์–ป๋Š” ํ•จ์ˆ˜ ์ฝœ๋ผ์ด๋” ์‚ฌ์ด์ฆˆ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฝœ๋ผ์ด๋” ๋‚ด์˜ ๋žœ๋คํ•œ ๊ฐ’์„ ์–ป์„ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. // ๋žœ๋ค ์œ„์น˜ ์–ป๊ธฐ Vector3 GetRandomPosition() { GameObject balloonRange = transform.Find("Balloons").gameObject; // Balloons ์˜ค๋ธŒ์ ํŠธ BoxCollider2D r..

[์œ ๋‹ˆํ‹ฐ] ํ”ผ ์ดํŽ™ํŠธ ํšจ๊ณผ : Particle System(ํŒŒํ‹ฐํด ์‹œ์Šคํ…œ)

์œ ๋‹ˆํ‹ฐ์—์„œ Particle System ์„ ์ด์šฉํ•œ ์ดํŽ™ํŠธ ์ œ์ž‘ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. โœจ ์•„๋ž˜๋Š” unity์—์„œ ์ œ๊ณตํ•˜๋Š” Particle System ๋งค๋‰ด์–ผ์ž…๋‹ˆ๋‹ค. ๋ฉ”์ธ ๋ชจ๋“ˆ - Unity ๋งค๋‰ด์–ผ ํŒŒํ‹ฐํด ์‹œ์Šคํ…œ ๋ชจ๋“ˆ์€ ์‹œ์Šคํ…œ ์ „์ฒด์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ „์—ญ ํ”„๋กœํผํ‹ฐ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ํ”„๋กœํผํ‹ฐ๋Š” ๋Œ€๋ถ€๋ถ„ ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ํŒŒํ‹ฐํด์˜ ์ดˆ๊ธฐ ์ƒํƒœ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์ธ ๋ชจ๋“ˆ์„ ํŽผ์น˜๊ฑฐ๋‚˜ ์ ‘์œผ๋ ค docs.unity3d.com Particle System ์บ๋ฆญํ„ฐ์˜ ์ž์‹ ์˜ค๋ธŒ์ ํŠธ๋กœ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค. ๊ทธ ํ›„, ์ธ์ŠคํŽ™ํ„ฐ์ฐฝ์—์„œ Particle System์„ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค. ์ด์ œ ์—ฌ๊ธฐ์—์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์„ค์ •๊ฐ’์„ ๋ฐ”๊ฟ”๊ฐ€๋ฉฐ ํŒŒํ‹ฐํด์„ ์›ํ•˜๋Š” ํ˜•ํƒœ๋กœ ์กฐ์ ˆํ•˜๋ฉฐ ํ”ผ ํšจ๊ณผ๋กœ ์„ค์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!! ๐Ÿ“ Re..

[์œ ๋‹ˆํ‹ฐ] ํŠน์ • ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ ๊ฐ์ง€ ๊ตฌํ˜„ (ex.์•„์ดํ…œ ๋จน๊ธฐ)

์ถฉ๋Œ ๊ฐ์ง€ ์œ ๋‹ˆํ‹ฐ์˜ ๋‚ด์žฅ๋œ ๋ฌผ๋ฆฌ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์บ๋ฆญํ„ฐ์˜ GameObject๊ฐ€ ์•„์ดํ…œ์˜ GameObject์™€ ์ถฉ๋Œํ•  ๋•Œ๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์บ๋ฆญํ„ฐ ์Šคํฌ๋ฆฝํŠธ์˜ "OnCollisionEnter" ๋˜๋Š” "OnTriggerEnter" ๋ฉ”์„œ๋“œ์—์„œ ์ถฉ๋Œํ•˜๋Š” ๊ฒƒ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. 01. Tag ์œ ๋‹ˆํ‹ฐ ์—๋””ํ„ฐ์ฐฝ์—์„œ GameObjects ํ•ญ๋ชฉ์— ํƒœ๊ทธ๋ฅผ ํ• ๋‹นํ•œ ๋‹ค์Œ ์บ๋ฆญํ„ฐ ์Šคํฌ๋ฆฝํŠธ์˜ "OnCollisionEnter" ๋˜๋Š” "OnTriggerEnter" ๋ฉ”์„œ๋“œ์—์„œ ์ถฉ๋Œํ•˜๋Š” ๊ฐœ์ฒด์˜ ํƒœ๊ทธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. void OnCollisionEnter(Collision collision) { if (collision.gameObject.CompareTag("Item")) { // The colliding object is an..

[์œ ๋‹ˆํ‹ฐ] 2D ์  ๋ชฌ์Šคํ„ฐ AI ๊ตฌํ˜„ํ•˜๊ธฐ - ๋งต ๋Œ์•„๋‹ค๋‹ˆ๊ธฐ

์•„๋ž˜ ๊ธ€์„ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค! [Unity2D] ์  ๋ชฌ์Šคํ„ฐ ๊ตฌํ˜„ํ•˜๊ธฐ [์œ ๋‹ˆํ‹ฐ ๊ธฐ์ดˆ - B18] ๋ชฌ์Šคํ„ฐ AI ๊ตฌํ˜„ํ•˜๊ธฐ [์œ ๋‹ˆํ‹ฐ ๊ธฐ์ดˆ - B19] ํ”Œ๋ ˆ์ด์–ด ํ”ผ๊ฒฉ ์ด๋ฒคํŠธ ๊ตฌํ˜„ํ•˜๊ธฐ ์˜์ƒ์„ ๋ณด๊ณ  ์“ฐ์—ฌ์ง„ ๊ฒŒ์‹œ๊ธ€ ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์‹œ๊ฐ„์—๋Š” ๋“œ๋””์–ด ๋ชฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ๊ตฌํ˜„์„ ํ•œ๋ฒˆ ํ•ด๋ณด๋„๋ก ํ• ํƒ ๋ฐ iagreebut.tistory.com ๋ชฌ์Šคํ„ฐ AI ๊ตฌํ˜„ํ•˜๊ธฐ 1) ์ค€๋น„ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋“ฑ์„ ๋„ฃ์€ ๋ชฌ์Šคํ„ฐ๋ฅผ ์ค€๋น„ํ•ด์ค๋‹ˆ๋‹ค. [์œ ๋‹ˆํ‹ฐ] 2D๋„ํŠธ ์บ๋ฆญํ„ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜ Box Collider 2D ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•ด์ค๋‹ˆ๋‹ค. ๋ฌผ๋ฆฌ๋ฅผ ์ ์šฉ ์‹œ์ผœ์•ผ ํ•˜๋ฏ€๋กœ (์ค‘๋ ฅ ๋ฐ›๊ธฐ ์œ„ํ•จ) ์บ๋ฆญํ„ฐ์— rigid body 2D๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด, ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ์ƒ์ž avoc-o-d.tistory.com 2) ๋ชฌ์Šคํ„ฐ ๊ธฐ๋ณธ ์ด๋™ ์Šคํฌ๋ฆฝํŠธ๋ฅผ..

[์œ ๋‹ˆํ‹ฐ] 2D๋„ํŠธ ์บ๋ฆญํ„ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜

Box Collider 2D ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•ด์ค๋‹ˆ๋‹ค. ๋ฌผ๋ฆฌ๋ฅผ ์ ์šฉ ์‹œ์ผœ์•ผ ํ•˜๋ฏ€๋กœ (์ค‘๋ ฅ ๋ฐ›๊ธฐ ์œ„ํ•จ) ์บ๋ฆญํ„ฐ์— rigid body 2D๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด, ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ์ƒ์ž์— ๋–จ์–ด์ง€๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! Bottom์ด๋ผ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ, Box Collider 2D ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๋Ÿฐ๋ฐ, Collider size์กฐ์ ˆ๋„ ์ž˜ ํ–ˆ๋Š”๋ฐ๋„ ์บ๋ฆญํ„ฐ์™€ ์ƒ์ž ์‚ฌ์ด์— ์•„์ฃผ ๋ฏธ์„ธํ•œ ํ‹ˆ์ด ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค. ๋„ํŠธ๊ฐ€ ๋งค์šฐ ์ž‘์€ ํ”ฝ์…€์ผ ๋•Œ ์ด๋Ÿฐ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Edit > Progject Setting > Physics 2D Default Contact Offset์„ 0์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. (0.0001์ด ์ตœ์†Œ) ์•„ํ‹€๋ผ์Šค ์•„ํ‹€๋ผ์Šค..

[์œ ๋‹ˆํ‹ฐ] ์บ๋ฆญํ„ฐ ์›€์ง์ด๊ธฐ, ์‰ฌํ”„ํŠธ ๋ˆ„๋ฅผ ์‹œ ๋‹ฌ๋ฆฌ๊ธฐ

์บ๋ฆญํ„ฐ ์›€์ง์ด๊ธฐ MovingObject.cs using System.Collections; using System.Collections.Generic; using UnityEngine; public class MovingObject : MonoBehaviour { public float speed;// ์†๋„ private Vector3 vector; //x,y,z ์ถ• // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { // "Horizontal" : ์šฐ ๋ฐฉํ–ฅํ‚ค : 1, ์ขŒ ๋ฐฉํ–ฅํ‚ค : -1 ๋ฆฌํ„ด // "Vertical" : ์ƒ ๋ฐฉํ–ฅํ‚ค : 1, ํ•˜ ๋ฐฉํ–ฅ..