Collider는 속성 자체를 제어하기보다 충돌했을때 감지하는 것이 더 중요하다.
1) OnCollision 이벤트
void OnCollisionEnter2D(Collision2D coll) : 충돌 발생
void OnCollisionStay2D(Collision2D coll) : 충돌 유지
void OnCollisionExit2D(Collision2D coll) : 충돌 빠져나갔을때
-----------------------
충돌발생했을때( 충돌체 정보)
=>
void OnCollisionEnter2D(Collision2D coll)
-----------------------
충돌이 발생했을때 충돌이 발생했다는 메세지를 띄우고,
충돌 발생한 게임오브젝트의 이름을 가져와보자
==============
public class PlayerMove : MonoBehaviour
{
void Start()
{
}
void Update()
{
}
void OnCollisionEnter2D(Collision2D coll) {
Debug.Log("충돌Enter");
Debug.Log(coll.gameObject.name);
}
}
==============
여기에서 void Start(), void Update()를 지워도 작동이 되지만 헤깔려할까봐 놔두었다.
스크립팅을 다 했으면 저장하고 플레이 버튼을 눌러보자.
플레이어가 타일에 닿았다.
** 더해보기
1. void OnCollisionStay2D(Collision2D coll), void OnCollisionExit2D(Collision2D coll) 상황일때도코딩해보자.
2. 충돌 오브젝트의 레이어와 태그도 메세지로 찍어보는 코딩해보자.
2) OnTrigger 이벤트
OnCollision 이벤트와 마찬가지로 3가지 경우가 있다. 이때, 가져오는 정보가 Collider가된다.
게임오브젝트에 둘 중하나가 isTrigger에 체크가 되어있어야한다. Trigger는 충돌을 하지 않지만 스치는 것을 감지한다.
void OnTriggerEnter2D(Collider2D coll)
void OnTriggerStay2D(Collider2D coll)
void OnTriggerExit2D(Collider2D coll)
-----------------------
트리거발생했을때( 충돌체 정보)
=>
void OnTriggerEnter2D(Collider2D coll)
-----------------------
충돌이 발생했을때 오브젝트 이름 찍기
===============
public class PlayerMove : MonoBehaviour
{
void Start()
{
}
void Update()
{
}
void OnTriggerEnter2D(Collider2D coll) {
Debug.Log("트리거Enter");
Debug.Log(coll.gameObject.name);
}
}
===============
플레이어를 isTrigger를 체크 해놔야한다.
** 더해보기
1. void OnTriggerStay2D(Collider2D coll), void OnTriggerExit2D(Collider2D coll) 상황일때도코딩해보자.
2. 트리거 오브젝트의 레이어와 태그도 메세지로 찍어보는 코딩해보자.
Unity Basic ch. 17] C#Script__ Input.GetKeyDown (0) | 2020.05.04 |
---|---|
Unity Basic ch. 16] C#Script 감지 RaycastHit2D (0) | 2020.05.04 |
Unity Basic ch. 14] C#Script로 제어하기 Rigidbody 2D_Addforce (0) | 2020.05.04 |
Unity Basic ch. 13] C#Script로 제어하기 Rigidbody 2D_Velocity (0) | 2020.05.04 |
Unity Basic ch. 12] Sprite Renderer를 C#Script로 제어하기 (0) | 2020.05.04 |