Collision d'une balle (clone)

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Idolo
Messages : 89
Inscription : 11 Mars 2015 10:16

Collision d'une balle (clone)

Message par Idolo » 18 Mars 2015 16:09

Bonjour, je suis désolé de poser encore une question.
Étrangement sur tous les posts que j'ai vu la méthode fonctionne pourtant pour moi ça ne marche pas (la malédiction des collisions ?)
Voila j'ai un script de tir (merci à l'auteur en passant) qui marche j'ai donc ajouter le son sans problème, mais viens le moment de chercher à faire disparaître la(les) balles au moment d'un impact et là c'est le drame.
Ma Balle à bien un collider (box) et un rigibody, et la collision du collider fonctionne vu que la balle rebondie (qu'elle coquine x) ) sauf que je veux qu'elle soit détruite à l'impact.
Code cs nommé Tir:

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class Tir : MonoBehaviour {

	public Transform bulletPrefab;
	private float shootTimer = 0.5f;
	private float shootTimerCurrent;
	private float bulletSpeed = 1000f;

	void Start() {
		shootTimerCurrent = shootTimer;
	}
	
	void Update() {
	}
	
	void FixedUpdate () {
		// Tir
		Shoot();
	}
	
	private void Shoot() {
		if (shootTimerCurrent <= 0) {
			if (Input.GetButtonDown ("Fire1")) {
				GetComponent<AudioSource>().Play();
				Transform bulletTransform = Instantiate(bulletPrefab, transform.position, transform.rotation) as Transform;
				bulletTransform.Rotate(180, 0, 0);
				bulletTransform.GetComponent<Rigidbody>().AddForce(bulletTransform.forward * bulletSpeed);
				
				shootTimerCurrent = shootTimer;
			}
		} else {
			shootTimerCurrent -= Time.deltaTime;
		}
	}
	void OnCollisionEnter(Collision Bullet){
		Destroy(this.gameObject);

	}
}
Quelqu'un saurait pourquoi elle ne sont pas détruite ? Même si c'est des clones tous les posts que j'ai lue marque que la commande fonctionne...

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6246
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Collision d'une balle (clone)

Message par boubouk50 » 18 Mars 2015 17:32

C'est bulletTransform qu'il faut que tu détruises pas la balle qui te sert pour le clonage.
Sur la balle clonée, tu mets le script

Code : Tout sélectionner

void OnCollisionEnter(Collision Bullet){
      Destroy(this.gameObject);
   }
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Idolo
Messages : 89
Inscription : 11 Mars 2015 10:16

Re: Collision d'une balle (clone)

Message par Idolo » 18 Mars 2015 17:57

Maintenant que tu le dis ça paraît évident et ça marche ! Merci beaucoup j'y aurais jamais pensé (honte sur moi...)

Répondre

Revenir vers « (C#) CSharp »