Sokovan 게임제작, 충돌처리

Se0ng_1l·2022년 7월 22일
0
post-thumbnail

이 글은
https://www.inflearn.com/course/유니티-게임-프로그래밍-에센스
강의를 요약한 강의노트 입니다.
유니티를 처음 접하시는 분들이거나 좀 더 기반을 다지고 싶으신 분들에게 👍강력하게 추천합니다.

📌오브젝트의 충돌처리

오브젝트는 자신이 부딪힌 사실을 모른다.
따라서, 오브젝트가 충돌했을때 유니티의 메시지를 이용해 부딪혔다는 사실을 알린다.

1️⃣OnTrigger

오브젝트와 트리거 오브젝트와의 충돌처리 메시지를 전달하는 메소드
void OnTriggerEnter(Collider other) :
접촉했을 때
void OnTriggerStay(Collider other) :
접촉하고 있는 중일 때
void OnTriggerExit(Collider other) :
접촉에서 빠져 나올 때

2️⃣OnCollision

오브젝트와 트리거가 아닌 오브젝트와의 충돌처리 메시지를 전달하는 메소드
void OnCollisionEnter(Collision collision) :
접촉했을 때
void OnCollisionStay(Collision collision) :
접촉하고 있는 중일 때
void OnCollisionExit(Collision collision) :
접촉에서 빠져 나올 때

Renderer

Renderer : 오브젝트의 표면 색채우기
MeshRenderer : 컴포넌트로 오브젝트의 표면 색을 그리는 도구
MeshRenderer컴포넌트에 접근하려면 변수의 타입을 Renderer로 지정해야한다.

Renderer myRenderer;
void Start()
{
    myRenderer = GetComponent<Renderer>();
}

material : 오브젝트의 표면 색
Renderer를 사용해 material에 접근한다.
material의 색(albedo)접근

myRenderer.material.color = Color.red; // 오브젝트의 색을 빨간색으로 변경

Tag

게임 오브젝트의 필터링을 위해 사용하는 하나가 Tag다.
아래 코드는 오브젝트와 Player로 태그가 된 오브젝트가 접촉할 때 처리하는 코드다.

void OnTriggerEnter(Collider other)
{
    if (other.tag == "Player")
    {
        Debug.Log("플레이어 접촉 확인!");
    }
}

📌RigidBody

Mass : 오브젝트의 질량
Drag : 오브젝트의 반발력, 마찰력의 크기

profile
치타가 되고 싶은 취준생

0개의 댓글