유니티 일기
물리 충돌 이벤트
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 : 충돌 정보 클래스