유니티 일기

물리 충돌 이벤트

mky 2025. 8. 25. 14:53

오브젝트의 재질 접근은 MeshRenderer을 통해서 한다

1. 물리 충돌 이벤트 (실제 물리적인 충돌로 발생하는 이벤트)

- OnCollisionEnter : 물리적 충돌이 시작될 때 호출되는 함수

- OnCollisionStay : 물리적 충돌이 계속될때 

- OnCollisionExit : 물리적 충돌이 끝났을 때 호출되는 함수

 

2. 트리거 이벤트 (콜라이더 충돌로 발생하는 이벤트)

- OnTriggerEnter : 콜라이더 충돌이 시작될 때 호출되는 함수

- OnTriggerStay : 콜라이더가 계속 충돌하고 있을때 호출  

- OnTriggerExit : 콜리이더 충돌이 끝났을 때 호출되는 함수

using Unity.VisualScripting;
using UnityEngine;

public class MyBall : MonoBehaviour
{
    Rigidbody rigid;
    void Start()
    {
        rigid = GetComponent<Rigidbody>();
        //rigid.linearVelocity = Vector3.left; // velocity : 현재 이동 속도
        //rigid.AddForce(Vector3.up * 1, ForceMode.Impulse);
    }

    void FixedUpdate() // Rigidbody 관련 코드는 FixedUpdate에서 작성
    {
        if (Input.GetButtonDown("Jump"))
        {
            rigid.AddForce(Vector3.up * 40, ForceMode.Impulse);
            Debug.Log(rigid.linearVelocity);
        }

        Vector3 vec = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));
        rigid.AddForce(vec, ForceMode.Impulse);
        //rigid.AddTorque(Vector3.forward);

    }

    private void OnTriggerStay(Collider other)
    {
        if (other.gameObject.name == "Cube")
        {
            if (other.name == "Cube")
            {
                rigid.AddForce(Vector3.up * 2, ForceMode.Impulse);
            }
        }
    }
}

 

Color : 기본 색상 클래스

Color32 : 255 색상 클래스

Collision : 충돌 정보 클래스