Modifier la valeur d'un gameobject d'une autre scène avec un UI Slider
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
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
-
- Messages : 85
- Inscription : 29 Août 2015 16:57
Modifier la valeur d'un gameobject d'une autre scène avec un UI Slider
Bonjour,
j'aimerai changer la sensibilité de mon personnage avec un UI slider qui se trouve dans une scène options. Seulement voilà pour pouvoir changer la valeur, je dois mettre le gameobject du perso dans mon UI Slider (comme dans cette vidéo vers 6:15 https://unity3d.com/learn/tutorials/mod ... /ui-slider ). Seulement ce gameobject se trouve dans une autre scène donc je ne vois pas comment je pourrais modifier une de ses valeurs à moins de bidouiller qque chose avec les PlayersPref mais bon je préfère vous demander car je connais pas du tout le fonctionnement de ces UI Slider.
merci.
j'aimerai changer la sensibilité de mon personnage avec un UI slider qui se trouve dans une scène options. Seulement voilà pour pouvoir changer la valeur, je dois mettre le gameobject du perso dans mon UI Slider (comme dans cette vidéo vers 6:15 https://unity3d.com/learn/tutorials/mod ... /ui-slider ). Seulement ce gameobject se trouve dans une autre scène donc je ne vois pas comment je pourrais modifier une de ses valeurs à moins de bidouiller qque chose avec les PlayersPref mais bon je préfère vous demander car je connais pas du tout le fonctionnement de ces UI Slider.
merci.
- boubouk50
- ModoGenereux
- Messages : 6243
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Modifier la valeur d'un gameobject d'une autre scène avec un UI Slider
Je ne sais pas trop, mais je pense qu'il faut que tu jettes un oeil de ce côté-ci:
OnValueChanged ()
L'exemple est clair je pense pour créer un appel vers une autre fonction.
OnValueChanged ()
L'exemple est clair je pense pour créer un appel vers une autre fonction.
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Modifier la valeur d'un gameobject d'une autre scène avec un UI Slider
Je ne pense pas que ce soit possible directement.
Par contre tu peux utiliser un managerScene, que tu implémentes avec des paramètres à mettre en place lors du chargement de la scène. Ainsi ta modification ne sera pas appliquée directement, mais au chargement de la scène.
Par contre tu peux utiliser un managerScene, que tu implémentes avec des paramètres à mettre en place lors du chargement de la scène. Ainsi ta modification ne sera pas appliquée directement, mais au chargement de la scène.
-
- Messages : 85
- Inscription : 29 Août 2015 16:57
Re: Modifier la valeur d'un gameobject d'une autre scène avec un UI Slider
Bon j'ai réussi. J'ai mis le gameobject en prefab et j'ai pu modifier sa valeur.
Par contre j'ai un autre problème. Quand j'initialise la valeur du slider par défaut à 600 par exemple, et que je l'ajuste ensuite à 800, dans le jeu la sensibilité est bien modifié mais quand je reviens dans la scène avec mon slider, sa valeur se remet à 600.
Par contre j'ai un autre problème. Quand j'initialise la valeur du slider par défaut à 600 par exemple, et que je l'ajuste ensuite à 800, dans le jeu la sensibilité est bien modifié mais quand je reviens dans la scène avec mon slider, sa valeur se remet à 600.
- boubouk50
- ModoGenereux
- Messages : 6243
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Modifier la valeur d'un gameobject d'une autre scène avec un UI Slider
S'il est dans un prefab il faut appliquer les changements (bouton Apply en haut à droite dans l'Inspector).
Si c'est un ajustement au runtime, c'est normal, il faut être en Edition pour les changements.
Si c'est un ajustement au runtime, c'est normal, il faut être en Edition pour les changements.
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
-
- Messages : 85
- Inscription : 29 Août 2015 16:57
Re: Modifier la valeur d'un gameobject d'une autre scène avec un UI Slider
Mon slider n'est pas dans un prefab. Mais en gros je voudrai que la "move sensibility" soit initialisée à 600 comme ci-contre http://www.noelshack.com/2015-42-1444761836-1.png
Et que lorsque le joueur modifie la valeur du slider, cette valeur soit sauvegardée non seulement dans le prefab du perso (donc ça c'est déjà fait), mais aussi dans le slider en lui-même.
Je pense que y a qque chose à bricoler avec les playerpref mais j'ai deja essayé ça n'a pas fonctionné. En gros y a ça dans le script de mon perso pour changer la sensibilité :
Et j'ai rajouté ce script dans mon slider :
mais ça fonctionne pas aparemment.
Et que lorsque le joueur modifie la valeur du slider, cette valeur soit sauvegardée non seulement dans le prefab du perso (donc ça c'est déjà fait), mais aussi dans le slider en lui-même.
Je pense que y a qque chose à bricoler avec les playerpref mais j'ai deja essayé ça n'a pas fonctionné. En gros y a ça dans le script de mon perso pour changer la sensibilité :
Code : Tout sélectionner
public float XForce;
public void AdjustXForce (float newXForce) {
XForce = newXForce;
PlayerPrefs.SetFloat ("XForcePref", XForce);
}
Code : Tout sélectionner
public float slider;
// Use this for initialization
void Start () {
slider = GetComponent<Slider> ().value;
slider = PlayerPrefs.GetFloat ("XForcePref");
}
-
- Messages : 85
- Inscription : 29 Août 2015 16:57
Re: Modifier la valeur d'un gameobject d'une autre scène avec un UI Slider
Dejà 'slider' est affecté deux fois en deux lignes. Bizarre non ?MisterJedi a écrit :mais ça fonctionne pas aparemment.Code : Tout sélectionner
slider = GetComponent<Slider> ().value; slider = PlayerPrefs.GetFloat ("XForcePref");
En suite, ton PlayerPrefs.SetFloat est-il bien exécuté avant ton PlayerPrefs.GetFloat ?
Ta valeur récupérée 'slider' est elle bien injectée sur ton composant Slider ? (à priori value)
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
-
- Messages : 85
- Inscription : 29 Août 2015 16:57
Re: Modifier la valeur d'un gameobject d'une autre scène avec un UI Slider
Max a écrit :Dejà 'slider' est affecté deux fois en deux lignes. Bizarre non ?MisterJedi a écrit :mais ça fonctionne pas aparemment.Code : Tout sélectionner
slider = GetComponent<Slider> ().value; slider = PlayerPrefs.GetFloat ("XForcePref");
En suite, ton PlayerPrefs.SetFloat est-il bien exécuté avant ton PlayerPrefs.GetFloat ?
Ta valeur récupérée 'slider' est elle bien injectée sur ton composant Slider ? (à priori value)
bon j'ai mis ce code et aparemment ça marche :
Code : Tout sélectionner
public Slider _slider;
void Start () {
_slider = GetComponentInChildren<Slider> ();
_slider.value = PlayerPrefs.GetFloat ("XForcePref");
}
Re: Modifier la valeur d'un gameobject d'une autre scène avec un UI Slider
Cela parait en effet déjà mieux.
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