Page 2 sur 2

Re: Appeler un FSM unique depuis d'autres puis retour

Publié : 18 Sep 2015 15:28
par jeanfabre
:)

Pour faire un reset, il faut soit effacer la donné dans les playerprefs ( delete all ou just delete pour une "key" donné). Mais ensuite tu doit relancer le processus de tout les fsm pour qu'il recommence leur routine, donc par example creer un global event "RESET PREFS", et tout FSM qui utilise des prefs doit prendre en compte cet Event et recommancer a 0.

Pour les probleme de rotation, pars sur une scene vide, avec un cube, et travaille la dessus, quand tu maitrise le processus, alors tu peux complexifier la fonction ou retourner dans ton aure scene et debugger plus efficicacement. Je dirait que dans ton cas, c'est surement que tu te retrouve avec une mauvais info dans les prefs et donc le vector3 est 0,0,0. utilise le debugger en etape par etape pour bien voir se qui se passe.

A plus,

Jean

Re: Appeler un FSM unique depuis d'autres puis retour

Publié : 18 Sep 2015 16:21
par stigma
ça marche presque.
J'ai créé une variable Rotation (Vector3) et Vector3R data (String)
J'ai ajouté les actions qu'il faut dans les états Build unique Key, Set Position, Get Position, Get Data et Save Data
La caisse ne garde pas sa rotation. Que signifie "Position for" dans le Build String ?

PS: J'ai peur, c'est mon 666 ème message ! :(


I'm coming for you! :diable:

Edit :
ça y est ça marche enfin. Impec. Encore un grand merci Jean pour ton aide et ta patience ! Mais ne t'éloigne pas trop, j'aurais certainement encore besoin de tes lumières :super:

Re Edit:
En fait je croyais que ça marchait car je testais sur un cube. Dans le cas d'un cylindre (un bidon), je n'arrive pas à enregistrer la rotation.
J'arrive donc à faire un FSM pour la position et un FSM pour la rotation mais pas les 2 ensemble. Peut-on faire ça dans le même FSM ou en faut-il 2 ?
.........................
ça semble marcher avec 2 FSM. Je touche du bois...

Edit 26/10:
J'ai réussi pour la position et la rotation. Mais quand au joueur, je rencontre des soucis lors du changement de scène. J'ai pensé à renommer le joueur (First Person Controller) pour chaque scène et j'ai choisi "PlayerPref" au lieu de "Name". ça marche pour la scène principale, mais pour les autres scènes, le joueur se retrouve à l'ouest ! Est-ce que le fait d'utiliser la même méthode pour les objets et le perso est correct ?
Merci

Re: [Résolu]Appeler un FSM unique depuis d'autres puis retour

Publié : 13 Oct 2015 09:28
par stigma
Salut Jean,
Je me permets de rouvrir ce post car je peine à résoudre un truc. Peut-ête devrais-je créer un nouveau post ? Mais c'est un peu la continuation du sujet.
J'ai un First Person A dans une scène A (scène principale) et un First Person B dans une scène B (une pièce d'où l'on peut rejoindre la scène A par 2 endroits différents)
Dans le jeu, First Person A et B sont bien sûr un seul joueur.
Quand First Person B revient dans la scène A par la porte qu'il vient d'emprunter, il se retrouve bien au bon endroit. PlayerPrefs a bien fonctionné. Mais s'il choisi de retourner dans la scène A par une autre porte, c'est là que ça se gâte. Il n'est donc pas au nouvel endroit, oeuf course !
Comment faire pour forcer les nouvelles coordonnées (un Vector3) au nouvel endroit où il devrait être ?

J'ai essayé de décrire la situation le plus clair possible. Merci d'avance si tu peux m'aider à résoudre ça.

Re: [Résolu]Appeler un FSM unique depuis d'autres puis retour

Publié : 13 Oct 2015 12:25
par jeanfabre
Bonjour,

je pense qu'il faut que tu sauve les variables en fonction de leur scene. donc dans les playerpref, les clefs ont le format suivant:

SCENE-KEY par exemple: "Niveau3-PositionPlayer" et tu savue la position du joueur au niveau 3 la dedans. tu peux donc ainsi enregistrer "Niveau5-PositionPlayer" et ainsi de suite. Dans tes fsm, lorsque tu va chercher une info dans les playerprefs, tu va creer la clef dynamiquement "Niveau"+Scene index+"-PositionPlayer" ( action "build string").

ca ira ca?

A plus,

Jean

Re: [Résolu]Appeler un FSM unique depuis d'autres puis retour

Publié : 13 Oct 2015 13:03
par stigma
Dans une même scène, j'ai besoin d'avoir plusieurs positions définies pour le perso, suivant l'endroit où je veux qu'il soit. En d'autres termes, quand j'ai un PlayerPrefs nommé "First Person scene principale", comment lui forcer de nouvelles coordonnées (position) ?

Edit 17/10
Salut Jean,
Je réédite ce post car j'ai un "petit" souci. La modif d'un PlayerPref d'une autre scène me parait compliqué alors je voudrais seulement modifier les coordonnées du joueur dans une même scène (pour les changements de scène, j'utilise des variables globales).
Voici ce que je fais mais ça ne marche pas. J'espère que mon FSM est clair
Image
En définitive, je cherche juste à forcer les coordonnées du joueur par une position que j'ai défini (position_echelle)
Merci d'avance

Re: Appeler un FSM unique depuis d'autres puis retour

Publié : 19 Oct 2015 10:44
par jeanfabre
Salut,

bien, je suis content que tu avance.

Le probleme est le suivant.

le format de ton string est "[x],[y],[z]" alors quand dans l'action Convert string to vector3 tu a "Vector3/([x],[y],[z]/)"

essaye donc avec "[x],[y],[z]" et ca va marcher.

Bye,

Jean

Re: Appeler un FSM unique depuis d'autres puis retour

Publié : 19 Oct 2015 10:57
par stigma
J'ai fait la modif mais le perso ne prend pas les coordonnées.

Edit:
J'ai tellement de FSM partout que ça se mélange un peu parfois. Maintenant ça marche. J'ai encore des trucs à régler de mon côté mais je considère le topic comme résolu.

encire merci Jean

Re: [Résolu]Appeler un FSM unique depuis d'autres puis retour

Publié : 27 Oct 2015 12:16
par jeanfabre
Bonjour,

tu as pu avancé?

Jean

Re: [Résolu]Appeler un FSM unique depuis d'autres puis retour

Publié : 27 Oct 2015 12:46
par stigma
Non pas trop. J'ai repris mon ancienne méthode, 2 variables globales pour la position et la rotation du joueur. En fait pour les objets la méthode que tu m'as donnée marche très bien, mais pas pour le joueur lorsqu'il doit gérer des positions définies. Ce n'est pas grave, ça marche bien comme ça. Merci Jean