μ§€λ‚œ μ‹œκ°„μ— 적 캐릭터λ₯Ό κ΅¬ν˜„ν•˜λ©΄μ„œ 이동 μ• λ‹ˆλ©”μ΄μ…˜λ„ ν•¨κ»˜ μ œμž‘ν–ˆλŠ”λ°, μ •μž‘ μ‚¬μš©λ˜μ§€λŠ” μ•Šμ•˜λ‹€. μ˜€λŠ˜μ€ 적 캐릭터가 주인곡 캐릭터λ₯Ό λ”°λΌκ°€λŠ” κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λ©΄μ„œ 이동 μ• λ‹ˆλ©”μ΄μ…˜λ„ μ μš©μ‹œμΌœλ³΄μž.


7c82fb6bb5826de87eb1d19528d52703e1508d439ccc

μš°μ„  적 캐릭터가 주인곡 캐릭터λ₯Ό κ°μ§€ν•˜λŠ” μ˜μ—­μ„ κ΅¬ν˜„ν•˜μž.

enemy씬을 μ—΄κ³  Sprite의 ν•˜μœ„μ— Area2Dλ…Έλ“œλ₯Ό 생성해쀀닀. Area2Dλ…Έλ“œλŠ” νŠΉμ • μ˜μ—­ 내에 물리 λ…Έλ“œκ°€ λ“€μ–΄μ™”λŠ”μ§€/λ‚˜κ°”λŠ”μ§€λ₯Ό 체크할 λ•Œ μ‚¬μš©ν•˜λŠ” λ…Έλ“œμ΄λ‹€.

7f82fb6bb5826ee87eb1d19528d527036e7313da3477

μƒμ„±ν•œ Area2D의 이름을 PlayerDetection으둜 μˆ˜μ •ν•˜μž.

7e82fb6bb58261e623ff5d66c35dc6f10f5e3e2d5b37ab88c3fb5e90064847a21b36

그리고 μΈμŠ€νŽ™ν„°μ—μ„œ μŠ€ν¬λ¦°μƒ·κ³Ό 같이 Layer와 Maskλ₯Ό μ„€μ •ν•œλ‹€.

7982fb6bb58369e87eb1d19528d527038b28c46d67dd

이제 인식 λ²”μœ„λ₯Ό μ„€μ •ν•΄μ•Ό ν•œλ‹€. PlayerDetectionλ…Έλ“œμ˜ ν•˜μœ„μ— CollisionShape2Dλ₯Ό μƒμ„±ν•΄μ£Όμž.

7882fb6bb5836ce87eb1d19528d52703e047327f7f3d8d


06f08077b09c28a8699fe8b115ef046cbf03b59618


06f08077b39c28a8699fe8b115ef046c07799a4ce7

μΈμŠ€νŽ™ν„°μ—μ„œ CollisionShape2D의 shape속성을 RectangleShape2D둜 λ„£μ–΄μ£Όκ³  크기와 μœ„μΉ˜λ₯Ό μ λ‹Ήνžˆ μ‘°μ ˆν•΄μ„œ PlayerDetection의 인식 λ²”μœ„λ₯Ό λ§ˆμŒλŒ€λ‘œ μ •ν•΄μ£Όλ©΄ λœλ‹€. 그리고 μŠ€ν¬λ¦°μƒ·μ—μ„œ κ°•μ‘°λœ κ²ƒμ²˜λŸΌ CollisionShape2Dμ—λŠ” debug_colorλΌλŠ” 속성이 μžˆλŠ”λ° 이 속성을 ν†΅ν•˜μ—¬ 각 CollisionShape의 색상을 μ§€μ •ν•  수 μžˆλ‹€. ν•„μžλŠ” λ‹€λ₯Έ CollisionShape와 ν—·κ°ˆλ¦¬μ§€ μ•Šλ„λ‘ λ…Έλž€μƒ‰μœΌλ‘œ μ„€μ •ν•΄λ†“μ•˜λ‹€.

06f08077bd9c28a8699fe8b115ef046c2d734993de

CollisionShape의 섀정을 λ§ˆμ³€λ‹€λ©΄ enemy.gd슀크립트λ₯Ό μ—΄κ³  μŠ€ν¬λ¦°μƒ·μ˜ κ°•μ‘°λœ 뢀뢄듀을 μΆ”κ°€λ‘œ μ½”λ”©ν•΄μ£Όμž.

06f08077bc9c28a8699fe8b115ef046fa026e0e6c3

λ˜ν•œ _processν•¨μˆ˜λ₯Ό μŠ€ν¬λ¦°μƒ·κ³Ό 같이 μˆ˜μ •ν•˜μž.


06f08074b59c28a8699fe8b115ef046e72c691d9

μ΄λ ‡κ²Œ 좔적기λŠ₯의 κ΅¬ν˜„μ„ μ™„λ£Œν–ˆλ‹€. κ²Œμž„μ„ μ‹€ν–‰ν•˜κ³  PlayerDetection의 μΈμ‹λ²”μœ„λ‚΄λ‘œ λ“€μ–΄κ°€λ©΄ 적 캐릭터가 주인곡을 λ”°λΌμ˜€λŠ” λͺ¨μŠ΅μ„ λ³Ό 수 μžˆλ‹€.