[RESOLU] Comment switcher le mode déplacement ?
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
- boubouk50
- ModoGenereux
- Messages : 6262
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [HELP] Comment switcher le mode déplacement ?
Humm, alors je ne vois pas trop...
Je n'aime pas trop ton CameraController_fly, il n'utilise pas le rigidbody attaché à ton perso. Mais si tu me dis qu'il fonctionne correctement avec, alors il n'y a pas de raison qu'il ne marche pas après le switch...
Peux-tu éditer ton post précédent avec le script du switch stp, tu as copier 2 fois le CameraController_fly, ou bien est-ce exactement celui de Greg du post précédent?
Je n'aime pas trop ton CameraController_fly, il n'utilise pas le rigidbody attaché à ton perso. Mais si tu me dis qu'il fonctionne correctement avec, alors il n'y a pas de raison qu'il ne marche pas après le switch...
Peux-tu éditer ton post précédent avec le script du switch stp, tu as copier 2 fois le CameraController_fly, ou bien est-ce exactement celui de Greg du post précédent?
"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: [HELP] Comment switcher le mode déplacement ?
Erreur de copié/coller ! Le Switch est bien celui de Greg !
- boubouk50
- ModoGenereux
- Messages : 6262
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [HELP] Comment switcher le mode déplacement ?
Dans ce cas, je ne vois pas. Peut-être essayer de nous vfaire une vidéo pour qu'on se rende compte du comportement.
La prochaine étape est de coller des Debug.Log ("Mon Texte ici"); dans tes conditions pour avoir un peu plus d'infos sur où cela pourrait venir.
La prochaine étape est de coller des Debug.Log ("Mon Texte ici"); dans tes conditions pour avoir un peu plus d'infos sur où cela pourrait venir.
"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: [HELP] Comment switcher le mode déplacement ?
D'accord ! Merci quand même, je vais continué a chercher !
Re: [HELP] Comment switcher le mode déplacement ?
Je n'aime pas ton controller non plus... C'est pas juste cette ligne :
qui devrait être genre :
Si non, afin de vérifier dans la console si le player est bien "repoussé", tu peux essayer de rajouter ça sur le controller_fly :
si rien ne s'affiche dans la console, c'est clairement un problème de controller... tu peux essayer de rajouter :
Code : Tout sélectionner
transform.position += (transform.right * Input.GetAxis("Horizontal") + transform.forward * Input.GetAxis("Vertical") + transform.up * Input.GetAxis("Depth")) * movementSpeed;
Code : Tout sélectionner
transform.position += new Vector3(Input.GetAxis("Horizontal") * movementSpeed, Input.GetAxis("Vertical") * movementSpeed, Input.GetAxis("Depth") * movementSpeed);
Code : Tout sélectionner
void OnCollisionEnter(Collision collision)
{
Debug.Log(collision.gameObject.name);
}
Code : Tout sélectionner
void Update()
{
Debug.Log(GetComponent<Rigidbody>().velocity);
}
Mon jeu de développement cellulaire : MICROBIOME (encore quelques bugs...)
(merci bien à ceux qui passent mettre des étoiles ! ^^)
(merci bien à ceux qui passent mettre des étoiles ! ^^)
Re: [HELP] Comment switcher le mode déplacement ?
Hello !
Après moult recherche, j'ai la moitié de mon problème résolu !
Je peux switcher le mode de contrôle dans un sens, mais pas dans l'autre !
J'ai fais un système a deux joueur : Lorsque le jeu démarre, player1 est activer et player2 est désactiver. Lorsque je rentre dans un trigger, player1 est désactiver et player2 est activé.
Le probléme, c'est que je n'arrive pas a revenir a la condition de base (player1 activer / player2 désactiver)
DISABLEPLAYER1
ENABLEPLAYER2
Une idée pour inverser cela ?
Après moult recherche, j'ai la moitié de mon problème résolu !
Je peux switcher le mode de contrôle dans un sens, mais pas dans l'autre !
J'ai fais un système a deux joueur : Lorsque le jeu démarre, player1 est activer et player2 est désactiver. Lorsque je rentre dans un trigger, player1 est désactiver et player2 est activé.
Le probléme, c'est que je n'arrive pas a revenir a la condition de base (player1 activer / player2 désactiver)
DISABLEPLAYER1
Code : Tout sélectionner
#pragma strict
var Obj : GameObject;
function Start () {
}
function OnTriggerEnter (trigger:Collider) { if(trigger.GetComponent.<Collider>().tag=="Player1") Obj.SetActive (false);
DontDestroyOnLoad (gameObject);
}
ENABLEPLAYER2
Code : Tout sélectionner
#pragma strict
var Obj : GameObject;
function Start () {
Obj.SetActive(false);
}
function OnTriggerEnter (trigger:Collider) { if(trigger.GetComponent.<Collider>().tag=="Player2") Obj.SetActive (true);
DontDestroyOnLoad (gameObject);
}
Une idée pour inverser cela ?
Dernière édition par Nattahnam le 30 Août 2017 17:22, édité 1 fois.
- boubouk50
- ModoGenereux
- Messages : 6262
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [HELP] Comment switcher le mode déplacement ?
Je ne suis pas bien sur que tu aies compris le fonctionnement des triggers.
La fonction OnTriggerEnter () est appelé à chaque fois que le GameObject qui possède le script entre dans un Trigger.
Donc si tu veux switcher entre les deux, il te faut simplement activer l'autre et désactiver lui-même. Ce sera donc le même script pour les 2, il ne faut pas séparer en Activation ou désactivation.
Par contre, je n'ai pas saisi la condition: if (trigger.GetComponent.<Collider>().tag=="Player1") présente dans les 2 scripts.
A quoi sont appliqués ces scripts?
Si Player1 est désactivé, tu ne pourras pas le toucher donc activer son Collider donc vérifier cette condition. Et quand bien même, ça n'a pas de sens si Player1 se touche lui-même...
La fonction OnTriggerEnter () est appelé à chaque fois que le GameObject qui possède le script entre dans un Trigger.
Donc si tu veux switcher entre les deux, il te faut simplement activer l'autre et désactiver lui-même. Ce sera donc le même script pour les 2, il ne faut pas séparer en Activation ou désactivation.
Par contre, je n'ai pas saisi la condition: if (trigger.GetComponent.<Collider>().tag=="Player1") présente dans les 2 scripts.
A quoi sont appliqués ces scripts?
Si Player1 est désactivé, tu ne pourras pas le toucher donc activer son Collider donc vérifier cette condition. Et quand bien même, ça n'a pas de sens si Player1 se touche lui-même...
"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: [HELP] Comment switcher le mode déplacement ?
Les codes s'appliques sur des GameObject, pas sur Player1 / Player2.
Comment faire pour réunir les deux codes en un ?
Comment faire pour réunir les deux codes en un ?
Re: [HELP] Comment switcher le mode déplacement ?
Les Onxxx fonctionnent même avec un GO déactivé (comme tu le soupçonnais). Cela permet justement de ré-activer un GO en "sommeil".
Ces "trucs" peuvent être bénéfique, mais peuvent aussi (souvent?!) plomber les performances d'un projet vu que TOUT les GOs qui en comporte (actif ou pas) sont dans la boucle de "scrutation" d'Unity.
- boubouk50
- ModoGenereux
- Messages : 6262
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [HELP] Comment switcher le mode déplacement ?
Ce sont les triggers qui envoient l'info de contact?
Tu as un trigger pour activer et l'autre pour désactiver?
Ce devrait être les persos qui doivent avoir ce code, ainsi si le trigger touché est le bon switch, hop tu bascules. Et le comme le joueur 2 bascule sur le joueur 1 (et inversement) tu n'as pas à t'embêter à savoir qui est actif ou non.
Brrr, du JS:
A mettre sur chacun de tes persos.
Tu as un trigger pour activer et l'autre pour désactiver?
Ce devrait être les persos qui doivent avoir ce code, ainsi si le trigger touché est le bon switch, hop tu bascules. Et le comme le joueur 2 bascule sur le joueur 1 (et inversement) tu n'as pas à t'embêter à savoir qui est actif ou non.
Brrr, du JS:
A mettre sur chacun de tes persos.
Code : Tout sélectionner
#pragma strict
function Start () {
//Si tu dois garder ton personnage entre les niveaux mieux vaut le faire au Start ()
DontDestroyOnLoad (gameObject);
//Dois-tu désactiver le joueur 2 par code obligatoirement? Tu peux le mettre inactif dans la scène
//Si par code alors
gameObject.SetActive (gameObject.name.localeCompare("METTRE LE NOM DU JOUEUR1 ICI"));
//Cela activera le joueur1 et désactivera le joueur2 (sauf s'ils ont le même nom...)
}
function OnTriggerEnter (trigger:Collider) {
//Si le trigger est bien du type à switcher de perso alors on switche
if (trigger.tag.localeCompare("NOM DU TAG DES TRIGGERS DE SWITCH")) {
//Changer son activité revient à désactiver l'un et activer l'autre puisque chacun s'auto-gère
gameObject.SetActive (!gameObject.activeSelf);
}
}
"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