[RESOLU] [DB-AL]Mode Visée FPS 3D

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
Sheetland
Messages : 2
Inscription : 22 Mars 2017 23:00

[RESOLU] [DB-AL]Mode Visée FPS 3D

Message par Sheetland » 26 Avr 2017 11:04

Salut tout le monde :)

Je développe actuellement, avec un collègue de la fac, un jeu FPS en 3D du style Call of : mode zombies.
Du coup me voilà confronté à un petit problème, lorsque j'essaie de viser avec le clic droit de la souris, rien à faire, ça ne marche pas...
Je vous montre des photos et j'explique après

Code : Tout sélectionner

	private Vector3 positionDepart;
	public Vector3 positionArrivee;
    	
    	void Update () {
        if (!Shot.isPaused)
        {
            if (Input.GetButtonDown("Fire2"))
            {
                positionDepart = this.GetComponentInParent<Transform>().localPosition;
                Transform arme = this.transform.parent;
                Debug.Log(arme.transform.localPosition);
                arme.transform.position = Vector3.Lerp(arme.transform.position, positionArrivee, 0.4f);
                Debug.Log(arme.transform.localPosition);
            }
        }
Image

Image

Image
position du parent PM-40_variant2


Voilà, pour vous donner une idée : mon script shot est sur l'enfant eject de chaque arme (toutes mes armes sont faites de la même manière, exceptés les composants mais ça parait évident, quoi qu'il arrive le eject? et toujours en dernier)
Ce que je trouve bizarre tout de même, c'est que mes positions changent lors de l'affichage du Debug.Log mais pas à l'écran, et je comprend pas trop pourquoi ...

Une petite âme charitable pour m'aider ? :-D
Dernière édition par Sheetland le 26 Avr 2017 13:34, édité 1 fois.

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

Re: [DB-AL]Mode Visée FPS 3D

Message par boubouk50 » 26 Avr 2017 11:17

Salut,
ton scale est vraiment petit. Les transformations locales sont dépendantes du scale, il est possible que les transformations soient tellement minimes qu'elles ne soient pas visibles, il faudrait alors les multiplier par l'inverse des scales totaux pour avoir une unité World et non locale.
"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

Sheetland
Messages : 2
Inscription : 22 Mars 2017 23:00

Re: [DB-AL]Mode Visée FPS 3D

Message par Sheetland » 26 Avr 2017 11:49

J'ai changé l'arme de prédilection, j'ai pris un UMP-45 avec un scale précis de 1 en x,y et z.
Ca ne fonctionne toujours pas ...
Le résultat avec un arme.transform.position
Image

Le résultat avec un arme.transform.localPosition
Image

Tu as une idée ?
Je me disais peut-etre que créer un script unique (j'entends par là que ce script va seulement activer/desactiver le mode visée), attaché directement à l'arme active peut être une bonne idée, qu'en penses-tu ?

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

Re: [DB-AL]Mode Visée FPS 3D

Message par boubouk50 » 26 Avr 2017 12:52

Je pense que le Component Animator sur le parent empêche de modifier ses transformations qui sont contrôlées par les courbes d'animation.
Il faudrait alors mettre ce GameObject sous un parent vide qui lui pourrait être modifié.
"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

Répondre

Revenir vers « (C#) CSharp »