Depuis 2 jours je cherche comment empêche le doublement d'un objet instancier.
La 1erre partie sert a déclancher le piège
Code : Tout sélectionner
public GameObject carapace;
//acces au script arme_piege
private Arme_piege newCarapace;
// Start scene
private void Start()
{
//acces script Arme_piege
newCarapace = GameObject.Find("Arme_piege").GetComponent<Arme_piege>();
//initialisation components
carapace.GetComponent<SpriteRenderer>().enabled = false;
carapace.GetComponent<Rigidbody2D>().isKinematic = true;
carapace.GetComponent<BoxCollider2D>().isTrigger = true;
}
private void Update()
{
if (newCarapace.obj != null)
{
carapace = newCarapace.obj;
}
}
private void OnTriggerEnter2D(Collider2D collision)
{
if(collision.name == "Robot")
{
//modification des components
carapace.GetComponent<SpriteRenderer>().enabled = true;
carapace.GetComponent<Rigidbody2D>().isKinematic = false;
carapace.GetComponent<BoxCollider2D>().isTrigger = false;
}
}
Code : Tout sélectionner
//ne rien attribuer (sa ne sert a rien)
public GameObject obj = null;
//sencer empeche le spawn multiple (marche pas)
public bool aSpawner = false;
//Ajout d'une image au gameObject (soucis image)
public Sprite image;
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.name == "Robot" && obj == null && !aSpawner)
{
aSpawner = true;
//creation d"une nouvelle carapace (va etre modifier)
obj = new GameObject("caparace");
//ajout d'un tag
obj.tag = "piege";
//ajout des components et parametrage
obj.AddComponent<BoxCollider2D>();
//atribution de l'image au gameObject
obj.AddComponent<SpriteRenderer>().sprite = image;
obj.AddComponent<Rigidbody2D>().isKinematic = true;
//initilasiton suplementaire des components
obj.transform.localScale = new Vector3(0.4846875f, 0.41f, 1);
obj.GetComponent<Rigidbody2D>().mass = 500;
obj.GetComponent<SpriteRenderer>().enabled = false;
obj.GetComponent<BoxCollider2D>().isTrigger = true;
//position de depart
obj.transform.position = new Vector2(15, 4);
Mais l'objet instancier se double et je n'arrive pas à en faire instancier que 1
du coup la 1ere instance prend les paramètres mais se declanche pas mais la 2e instance prend pas le sprite = image mais se déclanche correctement.
Je n'est aucune erreur dan la console.
PS: Je sait que Unity instancie autrement mais pas trop compris et se n'es pas le problème enfin je pense
Si quelqu'un sait comment faire merci beaucoup !