
Quiero llamar "CargarNivel" por ejemplo cuando haga click sobre un objeto
Pero en las funciones del Evento "OnClick" no me aparece:

Gracias
Moderator: julianmartinez16
No se si puedo poner esto aquí o debería crear otro post,, pero tengo un problemita con Unity.xacarana wrote:.
Code: Select all
using UnityEngine;
using System.Collections;
public class Bullet : MonoBehaviour {
private float speedBullet;
Vector2 _direccion;
bool isReady;
void Awake()
{
speedBullet = 8;
isReady = false;
}
public void setDirection(Vector2 direccion)
{
_direccion = direccion.normalized;
isReady = true;
}
void Update () {
if(isReady)
{
Vector2 position = transform.position;
position = position + _direccion * speedBullet * Time.deltaTime;
transform.position = position;
Vector2 min = Camera.main.ViewportToWorldPoint(new Vector2(0, 0));
Vector2 max = Camera.main.ViewportToWorldPoint(new Vector2(1, 1));
if((transform.position.x < min.x) || (transform.position.x > max.x) ||
(transform.position.y <min.y) || (transform.position.y > max.y))
{
Destroy(gameObject);
}
}
}
}
Proba con este código, de pronto puede servir:CalleSantiago wrote:Ayuda por favor
Lo que pasa es que aún no logro que cuando la bala entre en colisión con un barco, se destruya cualquiera de los dos, he intentado creando un método de manera que cuando estén colisionando, se detecte un gameObject por el nombre y se destruya, pero no ocurre nada, si miran en el último if, sí logro destruir la bala pero solo cuando se sale del escenario, de otra manera no he podido, si me pueden dar ayuda o encuentran un tutorial que me sirva, lo agradecería mucho, feliz noche.
Code: Select all
void OnTriggerEnter2D(Collider2D collider)
{
if (collider.tag.Equals ("Barco"))
{
collider.gameObject.SetActive(false);
Destroy(gameObject)
}
}
Que bueno que te pudiste defender, cuando se trabaja con plugins externos a unity se debe tener precaución ya que estos son programas que pueden tener algúns bugs, además puede que esten hechos para versiones anteriores de unity, por tanto es importante revisar los requerimientos técnicos, ya que Unity últimamente esta cambiando y deprecando funcionalidades.Sara.Rod wrote: EDIT: Al final lo arreglé al quitar toda la parte de Tiled2Unity y re-importar todo el fondo,, pero me aparece este letrerito en mono develop, no se si tenga algo que ver
Nosotros vamos a ver un ejemplo de como solucionar este tipo de situaciones dentro de poco, por el momento la solución es poner colliders con trigger event, para que al producirse la collision se destruya la bala, sin embargo les adelanto que las balas no se deben destruir, sino que se deben reciclar, en algo que se llama object polling, de esta forma se recicla memoria.CalleSantiago wrote: Lo que pasa es que aún no logro que cuando la bala entre en colisión con un barco, se destruya cualquiera de los dos
Profeee, me surgió otro problema con los scripts de Unidad, ayudaaxacarana wrote:Sara.Rod wrote:
Code: Select all
if(unidad != null)
{
anim.SetInteger(Estado_Salud,unidad.Salud);
}
else
{
Debug.Log("La unidad no ha sido asignada");
}
Code: Select all
if (dist <= distancia_umbral)
{
this.tiempo += Time.deltaTime;
Debug.DrawLine(this.transform.position, enemigo.transform.position, Color.green);
GameObject enemig = GameObject.Find("Barco1");
if (enemig != null)
{
if (this.tiempo > this.tiempoDeSalir)
{
this.tiempo = 0;
GameObject bullet = (GameObject)Instantiate(CanonBall);
bullet.transform.position = transform.position;
Vector2 direction = enemig.transform.position - bullet.transform.position;
bullet.GetComponent<Bullet>().setDirection(direction);
}
}
}