2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

응용프로그래밍/유니티기초

[유니티기초] 1-04. 게임오브젝트 충돌 처리

파아란기쁨1 2022. 5. 30. 10:14
반응형
목표

충돌에 관련된 Collider 에 대해 알아 보자.

 

이론

OnCollisionEnter2D : 두 오브젝트가 충돌하는 순간 1회 이벤트 발생

OnCollisionStay2D :  충돌해 있는 순간 계속 발생

OnCollisionExit2D : 두 오브젝트의 충돌이 종료되는 순간 1회 발생

 

 

실습

 

1. Collider : 충돌 범위

 

- 속성

Material : 해당 오브젝트의 마찰력 등을 설정 할 수 있는 물리 메터리얼 등록 가능

Is Trigger : 체크 되었을 때 통과하면서 충돌 이벤트 발생, 체크되지 않으면 통과 되지 않음

Offset : 충돌 범위의 중심점 위치

Size : 충돌 범위 크기

Used By Composite : 콜라이더를 그룹으로 통합할 때 체크

 

 

 

2. 객체 생성하여 테스트 해 보자.

Circle/Square 두개를 생성하여 배치 후 Circle에는 중력과 충돌 설정, Square에는 충돌만 설정하자.

5. 실행해 보면 공이 떨어져서 바닥에 붙는 것을 확인 할 수 있다.

 

6. 공이 떨어져서 충돌이 발생하는 시점에 바닥의 색상을 변경하는 스크립트를 작성해 보자.

스크립트

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

public class CollisionEvent : MonoBehaviour
{
    private SpriteRenderer spriteRenderer;

    //Start 보다 먼저 발생하는 이벤트
    private void Awake() {
        spriteRenderer = GetComponent<SpriteRenderer>();
    }

    // Start is called before the first frame update
    void Start()
    {
        spriteRenderer.color=Color.white;    
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    private void OnCollisionEnter2D(Collision2D other) {
        spriteRenderer.color = Color.red;
    }
}

 

 

 

 

연습문제

앞장에서 배운 키보드로 이동하는 방법을 활용하여 방향키를 이용하여 공을 움직이도록 처리해 보고 공이 바닥에서 떨어져 나갔을 때 색상을 원래대로 흰색으로 변경하도록 처리해 보자.

반응형