Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Temas recientes

Chequear colisión de otro objeto

Iniciado por Vale, Noviembre 02, 2019, 05:22:02 PM

Tema anterior - Siguiente tema
Noviembre 02, 2019, 05:22:02 PM Ultima modificación: Noviembre 04, 2019, 03:58:21 PM por pioj
hola saludos ! bueno, en este caso estoy tratando de chequear si dos BoxColliders2D se están tocando,  pero desde el script de otro objeto, me explico?  básicamente un objeto que es mi inventario contiene un script y quiero chequear si el BoxCollider2D de el "Player"  ha entrado en contacto con el BoxCollider2D de la munición "Ammo"   esto desde el mismo objeto ya lo he hecho y es fácil, pero controlar si se están tocando desde otro objeto y desde otro script me esta costando (soy muuuy novato en la programación) 
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class inventario : MonoBehaviour
{
 
    public bool TouchAmmo;
    public BoxCollider2D PlayerCol;        
    public BoxCollider2D Ammo9Col;
 
 
void OnTriggerEnter2D(Collider2D collision)
    {
        if (PlayerCol.IsTouching(Ammo9Col))
        {
            TouchAmmo = true;
        }

 
bueno claramente no funciona y queria saber si alguien me puede dirigir en la dirección correcta muchas gracias !!
 
 

Las funciones de los eventos de colisión solamente son llamados en el gameobject que contiene el collider. Propaga desde el objeto que colisiona y tiene el ontrigger un evento para que un gameobject externo lo reciba vía delegate.
 
https://learn.unity.com/tutorial/events-uh#

Este tema es interesante, me he encontrado varias veces con la necesidad de evaluar colisiones "desde fuera", y además apetece probar el rendimiento de un manager global. Estaría bien dar con una solución eficiente, antes de que demos el salto al D.O.T.S.

Por eventos es una manera elegante de hacerlo. Ahora bien, si se pretende por ejemplo utilizarlo para miles de balas desde múltiples  gameobjects, lo que recomendaría es una estructura accesible externamente (un scriptable por ejemplo) donde los colliders pudieran ir añadiendo sus colisiones en un stack (cola) para ir siendo procesados por el componente manager y que éste las redigiera al que conveniera accediendo directamente a unas funciones previamente declaradas en una interface.

Supongo que yo usaría el Collider2D (que es el llamado "collision" pasado como unico parametro) que entra en colision con el objeto portador del script.
 
Tal ves este video te ayude:
 
Gracias Charger Games...
 
 

Etiquetas: