Unity

Unity 2D basic #3 (Collision)

PON_Z 2021. 7. 3. 12:06

- OnCollisionEnter2D : 충돌이 일어나는 순간 1회 호출

- OnCollisionStay2D :  충돌이 유지되는 동안 매 프래임 호출

- OnCollisionExit2D : 충돌이 종료되는 순간 1회 호출

 

 

 

 

 

 

// Collision.cs

// 플레이어가 블럭에 충돌하는 동안 파란색으로 변함, 충돌 종료시 default color로 돌아옴

 

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CollisionEvent : MonoBehaviour
{
    // 해당 변수의 바로 윗줄에 작성 Transform의 positiom, rotation 변수들과 같이 Inspector View에서 변수의 옵션을 조절할 수 있게 해준다
    [SerializeField]
    private Color color;
    private Color defaultColor;
    private SpriteRenderer spriteRenderer;

    private void Awake()
    {
        spriteRenderer = GetComponent<SpriteRenderer>();
        defaultColor = spriteRenderer.color;
    }

    /*
    // 충돌이 일어나는 순간 1회 호출
    private void OnCollisionEnter2D(Collision2D collision)
    {
        spriteRenderer.color = defaultColor;
    }
    */
    
    // 충돌이 유지되는 동안 매 프래임 호출
    private void OnCollisionStay2D(Collision2D collision)
    {
        spriteRenderer.color = Color.blue;
        //Debug.Log(gameObject.name = " : OnCollisionStay2D() 메소드 실행");
    }

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

 

 

충돌전

 

충돌중

 

충돌에서 벗어남

 

 

728x90

'Unity' 카테고리의 다른 글

Unity 2D exercise (shooting game)  (0) 2021.07.13
Unity 2D basic #5 (Instantiate)  (0) 2021.07.04
Unity 2D basic #4 (Trigger)  (0) 2021.07.03
Unity 2D basic #2 (Key Input)  (0) 2021.07.03
Unity 2D basic #1 (Initialize & Update)  (0) 2021.07.03