MonoBehaviour.OnCollisionEnter(Collision)

Parametreler

other     Bu çarpışmayla, ilişkili olan Collision (Çarpışma) verileri.

Açıklama

OnCollisionEnter, bu collider/rigidbody başka bir rigidbody/collider ile temas etmeye başladığında çağrılır.

OnTriggerEnter'a kıyasla, OnCollisionEnter, Collision sınıfını alır ve Collider değil. Collision sınıfı, temas noktaları, etki hızı vb. hakkında bilgiler içerir. Eğer işlevde collisionInfo kullanmıyorsanız, collisionInfo parametresini çıkartarak gereksiz hesaplamaları önleyebilirsiniz. Not: Collision (Çarpışma) olayları, birinin kinematik olmayan bir rigidbody'e sahip collider'lerden birine bağlı ise gönderilir. Collision (Çarpışma) olayları, devre dışı bırakılan MonoBehaviour'a gönderilir, böylece çarpışmalara tepki olarak Behaviour'ları (Davranışları) etkinleştirmek mümkün olur.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    AudioSource audioSource;

    void Start()
    {
        audioSource = 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)
            audioSource.Play();
    }
}


OnCollisionEnter bir co-routine olabilir, işlevde yield ifadesini kullanmanız yeterlidir.


Bu blog Unity Docs'un Türkçeye çevrilmiş halidir.

Yorumlar

Bu blogdaki popüler yayınlar

Important Classes - Vectors

RequireComponent

Important Classes - GameObject