Skip to content

Latest commit

 

History

History
74 lines (54 loc) · 1.71 KB

File metadata and controls

74 lines (54 loc) · 1.71 KB

2주차

기본 충돌 설정

  • 충돌할 오브젝트: Collider 컴포넌트 추가
  • 움직이는 플레이어: Rigidbody 컴포넌트 추가

Rigidbody 설정

  • Use Gravity: 체크 해제
  • Freeze Position: Y축 체크
  • Freeze Rotation: X, Y, Z축 모두 체크

Trigger 사용법

  • Collider 컴포넌트의 Is Trigger 속성 체크.
  • 물리적 충돌 없이 통과하지만, 이벤트는 감지함.
  • 사용 예시: 특정 지역 진입 시 이벤트 발생, 아이템 획득 등 비디오 게임에서 많이 사용.

충돌 이벤트 스크립팅

충돌 메시지 및 효과

  • 콘솔 창의 Collapse 버튼으로 중복 메시지 축소 표시.
  • 적용 예시: 점수(Score), 상태(State), 체력(Hit Point) 변경.

예제 1: 충돌 시 벽 색상 변경

// ObjectHit.cs
using UnityEngine;

public class ObjectHit : MonoBehaviour
{
    private void OnCollisionEnter(Collision other)
    {
        GetComponent<MeshRenderer>().material.color = Color.red;
    }
}

### 예제 2: 충돌 횟수 계산
// Scorer.cs
using UnityEngine;

public class Scorer : MonoBehaviour
{
    int hits = 0;
    private void OnCollisionEnter(Collision other)
    {
        hits++;
        Debug.Log("You've bumped into a thing this many times: " + hits);
    }
}

## 캐싱 (Caching)
* 자주 사용하는 데이터나 정보를 메모리에 미리 저장하여 필요할 때 쉽게 접근하는 방식.

* 목적: GetComponent() 등의 반복 호출을 피해 성능을 최적화.

// 캐싱 예제
MeshRenderer myMeshRenderer;

void Start()
{
    myMeshRenderer = GetComponent<MeshRenderer>();
}

void OnCollisionEnter(Collision other)
{
    myMeshRenderer.material.color = Color.red;
}