Version: 5.3 (switch to 5.4b)
언어English
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Collider.OnCollisionEnter(Collision)

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

닫기

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

닫기

취소

Switch to Manual

파라미터

other The Collision data associated with this collision event.

Description

OnCollisionEnter는 이collider/rigidbody에 다른 collider/rigidbody가 닿을 때 호출됩니다.

OnTriggerEnter와는 대조적으로 OnCollisionEnter는 콜라이더가 아니라 Collision이 전달됩니다. Collision에는 접촉점, 충돌한 속도 등의 정보가 포함되어 있습니다. 이 함수의 collisionInfo를 사용하지 않으면 collisionInfo 파라미터를 생략함으로써 불필요한 계산을 피할 수 있습니다. 유의: 충돌 이벤트는 오직 콜라이더 중 하나가 non-kinematic 강체를 가지고 있을 때 보냅니다. 비활성 MonoBehaviour에도 충돌반응에 의한 Behaviour활성화가 가능하게 하기 위해서 충돌 이벤트를 보냅니다.


        
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { AudioSource audio; void Start() { audio = GetComponent<AudioSource>(); } void OnCollisionEnter(Collision collision) { foreach (ContactPoint contact in collision.contacts) { Debug.DrawRay(contact.point, contact.normal, Color.white); } if (collision.relativeVelocity.magnitude > 2) audio.Play(); } }

다른 예제:


        
// A grenade
// - instantiates a explosion prefab when hitting a surface
// - then destroys itself

using UnityEngine; using System.Collections;

public class ExampleClass : MonoBehaviour { public Transform explosionPrefab; void OnCollisionEnter(Collision collision) { ContactPoint contact = collision.contacts[0]; Quaternion rot = Quaternion.FromToRotation(Vector3.up, contact.normal); Vector3 pos = contact.point; Instantiate(explosionPrefab, pos, rot); Destroy(gameObject); } }