Soucis de direction lors du spawn

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
marcQC
Messages : 121
Inscription : 30 Nov 2013 18:14

Soucis de direction lors du spawn

Message par marcQC » 02 Août 2015 07:31

Bonjour

j'ai un soucis de spawn de bullet .

Le bulletSpawn est au bout de l'arme mais la balle spawn au pieds, je ne trouve pas la solution.
J'ai tenté plusieurs solution de rotation, de distance etc mais rien a faire, elle spawn toujours au pieds.
pas de soucis de collisions le player.

Merci de votre aide

voici le code

Code : Tout sélectionner

public GameObject bullet;
public Transform BulletSpawn;

void ShootRay ()
	{
		RaycastHit hit;

		GameObject go = Instantiate (bullet, transform.position, Quaternion.identity) as GameObject;

		Vector3 startPos = BulletSpawn.TransformPoint(Vector3.zero);
		Vector3 endPos = Vector3.zero;

		int mask = ~(1 << 9);

		Vector3 directionToAttack = EnemyToAttack.transform.position - transform.position;

		if(Physics.Raycast (startPos, directionToAttack, out hit, Mathf.Infinity, mask))
		{
			float distance = Vector3.Distance (BulletSpawn.transform.position, hit.point);

			RaycastHit[] hits = Physics.RaycastAll(startPos, hit.point - startPos, distance);

			foreach(RaycastHit hit2 in hits)
			{
				if(hit2.transform.GetComponent<Rigidbody>())
				{
					Vector3 direction = hit2.transform.position - transform.position;
					direction = direction.normalized;

					hit2.transform.GetComponent<Rigidbody>().AddForce(direction * 200);
				}
				/*else if(hit2.transform.GetChild<Destructible>())
				{
					hit2.transform.GetComponent<Destructible>(). destruct = true;
				}*/
			}

			endPos = hit.point;
		}

	}

Avatar de l’utilisateur
Max
Messages : 8772
Inscription : 30 Juil 2011 13:57
Contact :

Re: Soucis de direction lors du spawn

Message par Max » 02 Août 2015 11:25

Hello marcQC,

En lisant ton code,tu sembles créer le projectile appelé 'go' en instanciant à partir de 'bullet', et placé par rapport à la position du gameobject auquel est attaché le script (le player j'imagine). Donc normal que cela soit à ces pieds (qui doit en être le pivot).
A moins que quelque chose m'est échappé (j'suis à l'apéro) dans les reste de ton script, tu ne fait plus référence à ce gameobject 'go', donc qui reste la position initiale de sa création.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

marcQC
Messages : 121
Inscription : 30 Nov 2013 18:14

Re: Soucis de direction lors du spawn

Message par marcQC » 02 Août 2015 15:13

Bonjour et merci

Soucis corrigé en instanciant la bullet sous la ligne endPos.
Bizarre mais ca marche.

Merci encore

Répondre

Revenir vers « (C#) CSharp »