티스토리 뷰

Unity

Collision을 이용한 충돌 체크

사라진날 2020. 7. 4. 15:52
  • 물리적인 충돌이 있는 경우

using UnityEngine;

public class CollisionEvent : MonoBehaviour
{
    [SerializeField]
    private Color color;
    private SpriteRenderer spriteRenderer;

    // Start is called before the first frame update
    private void Awake()
    {
        spriteRenderer = GetComponent<SpriteRenderer>();
    }
    
    // 충돌이 일어나는 순간 1회 호출
    private void OnCollisionEnter2D(Collision2D collision){
        spriteRenderer.color = color;
    }
    
    // 충돌이 유지되는 동안 매 프레임 호출
    private void OnCollisionStay2D(Collision2D collision){
        Debug.Log(gameObject.name + " : OnCollisionStay2D 메소드 실행");
    }

    // 충돌이 종료되는 순간 1회 호출
    private void OnCollisionExit2D(Collision2D collision){
        spriteRenderer.color = Color.white;
    }
}

 

  • 물리적 충돌이 없는 경우

 

 

using UnityEngine;

public class TriggerEvent : MonoBehaviour
{
    [SerializeField]
    private GameObject moveObject;

    [SerializeField]
    private Vector3 moveDirection;
    private float moveSpeed;

    private void Awake()
    {
        moveSpeed = 5.0f;
    }

    //충돌이 일어나는 순간 1회 호출
    private void OnTriggerEnter2D(Collider2D collision){
        // moveObject의 색상을 검은색(Color.black)으로 설정
        moveObject.GetComponent<SpriteRenderer>().color = Color.black;
    }

    private void OnTriggerStay2D(Collider2D collision){
        // moveObject를 moveDirection 방향으로 이동
        moveObject.transform.position += moveDirection * moveSpeed * Time.deltaTime;
    }

    private void OnTriggerExit2D(Collider2D collision){
        //moveObject의 색상을 흰색으로 설정
        moveObject.GetComponent<SpriteRenderer>().color = Color.white;
        // moveObject의 위치를 (0, 4, 0)으로 설정
        moveObject.transform.position = new Vector3(0, 4, 0);
    }
}

 

출처 : https://www.youtube.com/watch?v=B3okDPOPgc0&list=PLC2Tit6NyVie46nbdEM00wFoojjRlXIcf&index=3

'Unity' 카테고리의 다른 글

Unity Rigidbody2D를 이용한 Move  (0) 2020.06.30
Unity Transfrom을 이용한 이동  (0) 2020.06.29
유니티에서 기본적인 캐릭터 이동  (0) 2018.01.30
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함