경험들/etc

[Unity] 유니티 기초 배우기 - Collision

detail_jy 2022. 1. 22. 17:10
728x90

 

플레이어 오브젝트가 다른 오브젝트와 부딪혔을 때를 Collision이라고 하는데 

 

서로 부딪혔을 때 어떤 효과를 줄지 배워보았다. 

 

보라색 큐브가 플레이어고, 노란색 직사각형 큐브가 장애물(Obstacle)이다. 

 

Collision을 위한 script를 우선 생성해준다. Script 이름은 'PlayerCollision'으로 했다. 

스크립트를 열고 

using UnityEngine;

public class PlayerCollision : MonoBehaviour
 
위 두줄을 제외하고 삭제한다. 
 
OnCollisionEnter을 적어주고 자동완성되는 코드를 선택하면 
아래와같이 void가 생긴다.

어떤 물체와 부딪혔을 때 그 collider의 오브젝트명을 콘솔에 표시하라는 코드이다. 

 

괄호 안에 왜 other로 써야하는지는 잘 이해가 안된다 ㅠㅠ.. 

 

아직 C#의 syntax가 너무 헷갈림. 

 

위와 같이하고 유니티에서 play를 누르면 플레이어가 바닥과도 처음에 부딪히는거라 

Ground

Obstacle 두가지가 콘솔에 다 떴다. 

 

 

부딪히는 물체가 Obstacle인 경우에만 콘솔에 메시지를 띄우려면

아래와같이 작성하면된다. 

 

Tag를 써야하는 이유 

 

하지만 나중에 오브젝트가 다양해지고 여러 collision이 발생할 때 오브젝트의 명칭으로 일일히 코드를 작성해주는 것은 효율적이지 않기 때문에 Tag를 쓰는 것이 좋다. 

 

태그를 달아줄 오브젝트를 선택한 후, Inspector 패널로 간다. Tag 란에 Untagged로 표시되어있을 것이다. 

 

여기서 Add Tag를 해주어 태그를 붙여준다. 

 

 

 

728x90
반응형
LIST