Unidad trece condiciones de choque

Con el fin de lograr la unidad dentro de la colisión, que tenga que cumplir con dos condiciones.

  1. Tienen dos objetos chocan montaje.
  2. El conjunto tiene un movimiento del cuerpo rígido.

Por primera: Hay muchas colisiones montaje, hay diferentes formas para diferentes Colisionador. Box Colisionador se encuentra entre las seis caras de un cubo, etc., para, si no el 2d Colisionador, el número de caras Box Colisionador es mínimo, los siguientes son cápsula cuerpo de la cápsula Colisionador, Esfera Colisionador de esfera. Que puede ser utilizado para objetos irregulares de malla Collider, tales como tanques, piedra y así sucesivamente.
Aquí Insertar imagen Descripción
Cómo detectar una colisión en el programa, la Unidad ha dado el método apropiado.
Cuando dos objetos chocan, cuando un cheque en el Is disparador, disparador: OnTriggerEnter, OnTriggerStay, OnTriggerExit
cuando sin obstáculos está disparador, disparador: OnCollisionEnter, OnCollisionStay, OnCollisionExit.

Ver más arriba en Inglés, significa literalmente, Enter colisión comenzó, estadía colisión permanecen, extremo de salida de colisión.

Cada método tiene un parámetro Colisionador de otro, un objeto adicional de esta representante de una colisión y de que suceda.

  private void OnTriggerEnter(Collider other)
    {
        Debug.Log("OnTriggerEnter:::"+other.transform.name);


    }

Escrito los ejemplos siguientes :, este método se puede arrastrar a uno de los objetos puede ver el efecto.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TrigerAndColler : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    private void OnTriggerEnter(Collider other)
    {
        Debug.Log("OnTriggerEnter:::"+other.transform.name);
//        Destroy(other.gameObject);

    }

    private void OnTriggerStay(Collider other)
    {
        Debug.Log("OnTriggerStay");
    }

    private void OnTriggerExit(Collider other)
    {
        Debug.Log("OnTriggerExit");
    }

    private void OnCollisionEnter(Collision other)
    {
//        Destroy(other.gameObject);
        other.transform.GetComponent<MeshRenderer>().material.color = new Color(Random.value,Random.value,Random.value);
        Debug.Log("OnCollisionEnter");
    }

    private void OnCollisionStay(Collision other)
    {
        Debug.Log("OnCollisionStay");
    }

    private void OnCollisionExit(Collision other)
    {
        Debug.Log("OnCollisionExit");
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

Publicado 56 artículos originales · ganado elogios 24 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/u014196765/article/details/92643810
Recomendado
Clasificación