private void EventoColision(ColisionInformacion info) { Entidad entidad = info.GetEntidadImpacto(); if (entidad == null) { return; } if (info.GetColisionImpacto() == null) { return; } if (info.GetColisionImpacto().GetColisionTipo() != ColisionTipo.FISICA) { return; } if (info.GetColisionEstado() == ColisionEstado.ENTER) { if (entidades.Contains(entidad)) { return; } entidades.Add(entidad); } else { if (!entidades.Contains(entidad)) { return; } entidades.Remove(entidad); } switch (objetivo) { case AreaObjetivo.JUGADOR: Jugador jugador = entidad as Jugador; if (jugador != null) { this.entidad = entidad; SolicitarEvento(info.GetColisionEstado() == ColisionEstado.ENTER); } break; case AreaObjetivo.ENTIDAD: if (entidad == entidadobjetivo) { this.entidad = entidad; SolicitarEvento(info.GetColisionEstado() == ColisionEstado.ENTER); } break; case AreaObjetivo.METADATA: string valor = entidad.GetMetadato(metanombre); string[] clases = valor.Split(' '); if (clases != null) { for (int i = 0; i < clases.Length; i++) { if (clases[i] == metaclase) { this.entidad = entidad; SolicitarEvento(info.GetColisionEstado() == ColisionEstado.ENTER); } } } break; case AreaObjetivo.TODOS: this.entidad = entidad; SolicitarEvento(info.GetColisionEstado() == ColisionEstado.ENTER); break; } }
protected override void Awake() { base.Awake(); jugador = GameObject.FindObjectOfType <Jugador>(); }