[DB-AL] Problème de jonction de programme
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
[DB-AL] Problème de jonction de programme
Bonjour/Bonsoir à tous. j'ai récemment commencé à utiliser Unity, je suis donc débutant+++ dans la matière.
-J'ai commencé par créé un simple projet d'animation qui faisait monter et descendre une Sphère lorsque je cliqué sur ''1"
https://www.youtube.com/watch?v=gHHq-rUVHQ4
-J'ai ensuite créé un nouveau projet qui lui me permet de déplacer une Sphère grâce à Z/Q/S/D
J'ai donc naturellement eu l'idée de créer un projet réunissant les deux, c'est à dire un mouvement avec Z/Q/S/D et lorsque le "1" est utilisé, l'animation se lance.
Mais c'est ici que ce situe mon problème.
https://www.youtube.com/watch?v=LVi8LJfuPRw
Merci d'avance à ceux ou celles qui pourront me venir en aide !
Ci dessous les programmes :
mouvement sphere : https://gyazo.com/632ec051519105232eadd7ca0d57e816
Animation : https://gyazo.com/8cd00c9ed6da5402ef035a7b3f39c246
-J'ai commencé par créé un simple projet d'animation qui faisait monter et descendre une Sphère lorsque je cliqué sur ''1"
https://www.youtube.com/watch?v=gHHq-rUVHQ4
-J'ai ensuite créé un nouveau projet qui lui me permet de déplacer une Sphère grâce à Z/Q/S/D
J'ai donc naturellement eu l'idée de créer un projet réunissant les deux, c'est à dire un mouvement avec Z/Q/S/D et lorsque le "1" est utilisé, l'animation se lance.
Mais c'est ici que ce situe mon problème.
https://www.youtube.com/watch?v=LVi8LJfuPRw
Merci d'avance à ceux ou celles qui pourront me venir en aide !
Ci dessous les programmes :
mouvement sphere : https://gyazo.com/632ec051519105232eadd7ca0d57e816
Animation : https://gyazo.com/8cd00c9ed6da5402ef035a7b3f39c246
- boubouk50
- ModoGenereux
- Messages : 6225
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [DB-AL] Problème de jonction de programme
Bonjour Stread91,
S'il te plait, pour le code, utilise les balises Code prévues à cet effet directement dans le message.
D'après le message d'erreur, l'input key n'a pas de nom: Input key named: is unknown.. Normalement, le nom est affiché. J'en conclus donc que tu n'as pas initialisé inputFront, que la chaîne de caractères est donc vide.
S'il te plait, pour le code, utilise les balises Code prévues à cet effet directement dans le message.
D'après le message d'erreur, l'input key n'a pas de nom: Input key named: is unknown.. Normalement, le nom est affiché. J'en conclus donc que tu n'as pas initialisé inputFront, que la chaîne de caractères est donc vide.
"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: [DB-AL] Problème de jonction de programme
J'ai essayer une autre alternative et cette fois je peux tourner sur moi même (avec Q/D) et faire l'animation mais je ne peux pas avancer, j'ai comme l'impression qu'aucune transform.Translate n'est possible. Le problème vient-il de mon animation ? Qui bloquerai les mouvements ?
- boubouk50
- ModoGenereux
- Messages : 6225
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [DB-AL] Problème de jonction de programme
Alors oui, il faut faire attention à la mise en place des tes éléments:
L'animation modifie les transformations de ton objet (position, rotation et échelle) tout comme toi avec les inputs. Il va donc y avoir conflit.
Ce qu'il faut faire c'est hiérarchiser tout ça. Par exemple, tu peux mettre ta sphère sous un Empty GameObject pour séparer les contrôles > Empty = Input, Sphere = Animation. Ainsi, la sphère est modifiée par l'animation et l'Empty parent est modifié par les Inputs. Il n'y a plus de conflit.
L'animation modifie les transformations de ton objet (position, rotation et échelle) tout comme toi avec les inputs. Il va donc y avoir conflit.
Ce qu'il faut faire c'est hiérarchiser tout ça. Par exemple, tu peux mettre ta sphère sous un Empty GameObject pour séparer les contrôles > Empty = Input, Sphere = Animation. Ainsi, la sphère est modifiée par l'animation et l'Empty parent est modifié par les Inputs. Il n'y a plus de conflit.
"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: [DB-AL] Problème de jonction de programme
Ahhh ok je comprend mieux, je faisais agir plusieurs chose sur un même objet qui se ''contre dise" .
Bon je vais essayer de comprendre et exécuter ta solution.
Bon je vais essayer de comprendre et exécuter ta solution.
Re: [DB-AL] Problème de jonction de programme
Ookkk okkk, ça à l'air de commencer à ressemble à quelque chose.
Mais un autre problème vient d’apparaître, les débuts et fin d'animation sont pas fou mais bon le problème n'est pas là, c'est plutôt le fait que je vole pendant l'animation combiné à la translation xD
https://www.youtube.com/watch?v=JgURdldw7-8
Vous aurez une solution ?
(en tout cas merci de la solution précédente)
Mais un autre problème vient d’apparaître, les débuts et fin d'animation sont pas fou mais bon le problème n'est pas là, c'est plutôt le fait que je vole pendant l'animation combiné à la translation xD
https://www.youtube.com/watch?v=JgURdldw7-8
Vous aurez une solution ?
(en tout cas merci de la solution précédente)
- boubouk50
- ModoGenereux
- Messages : 6225
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [DB-AL] Problème de jonction de programme
Si tu codes avec les pieds, je te dirais de remonter le clavier au niveau des mains.
Si ton objet s'envole, c'est que tu l'as programmé ainsi. Rien n'est fait par hasard.
Si tu veux de l'aide là dessus, balance ton code de déplacement (en entier merci) ici dans des balises code (le 5e bouton du menu d'édition)
Si ton objet s'envole, c'est que tu l'as programmé ainsi. Rien n'est fait par hasard.
Si tu veux de l'aide là dessus, balance ton code de déplacement (en entier merci) ici dans des balises code (le 5e bouton du menu d'édition)
"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: [DB-AL] Problème de jonction de programme
Code mouvement :
Code animation :
Critique comme il se doit, j'ai commencer avant hier et suis donc le plus gros néophyte dans le monde du code.
Ça m'aidera pour les prochaines
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharacterMotor : MonoBehaviour
{
//ms
public float walkSpeed;
public float runSpeed;
public float turnSpeed;
//Inputs
public string inputFront;
public string inputBack;
public string inputLeft;
public string inputRight;
public Vector3 jumpSpeed;
CapsuleCollider playerCollider;
void Start()
{
playerCollider = gameObject.GetComponent<CapsuleCollider>();
}
void Update()
{
//Déplacement
if (Input.GetKey(inputFront) && !Input.GetKey(KeyCode.LeftShift))
{
transform.Translate(0, 0, walkSpeed * Time.deltaTime);
}
if (Input.GetKey(inputBack))
{
transform.Translate(0, 0, -walkSpeed * Time.deltaTime);
}
if (Input.GetKey(inputLeft))
{
transform.Rotate(0, -turnSpeed * Time.deltaTime, 0);
}
if (Input.GetKey(inputRight))
{
transform.Rotate(0, turnSpeed * Time.deltaTime, 0);
}
//Sprint
if (Input.GetKey(inputFront) && Input.GetKey(KeyCode.LeftShift))
{
transform.Translate(0, 0, runSpeed * Time.deltaTime);
}
}
}
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class animControl : MonoBehaviour
{
public Animator anim;
void Start()
{
anim = GetComponent<Animator>();
}
void Update()
{
if (Input.GetKey("z"))
{
anim.SetBool("up", true);
}
else
{
anim.SetBool("up", false);
}
}
}
Ça m'aidera pour les prochaines
Re: [DB-AL] Problème de jonction de programme
Ok j'ai trouvé une solution. Mais un autre problème est apparu !
Lorsque je fini mon mouvement la sphère augmente de plus en plus sa hauteur :
https://www.youtube.com/watch?v=ZN3usTvBiwQ
J'ai essayer de lui ajouter de la gravité mais elle est attiré trop fort vers le sol ? Possible de diminué la gravité sur cette objet ?
Lorsque je fini mon mouvement la sphère augmente de plus en plus sa hauteur :
https://www.youtube.com/watch?v=ZN3usTvBiwQ
J'ai essayer de lui ajouter de la gravité mais elle est attiré trop fort vers le sol ? Possible de diminué la gravité sur cette objet ?
- boubouk50
- ModoGenereux
- Messages : 6225
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [DB-AL] Problème de jonction de programme
Oui alors là ça va pas du tout, ce n'est plus une question de programmation mais de connaissance sur le fonctionnement du contrôle d'un personnage.
Ta sphère possède un rigidbody, tu dois donc utiliser la physique du moteur pour les déplacements. Et cela passe par le rigidbody et non pas par le transform du gameObject.
Avant d'aller plus loin, je te conseille de te renseigner sur le Character Controller. Sur ce forum et sur le net.
Tu peux t'aider de la documentation (manual) pour la théorie sur le rigidbody, des Unity Learn pour les explications et tutos (officiels donc en anglais) et enfin d'exemples. (Dans les StandardAssets d'Uinty Technology, tu as un exemple de Caracter Controller, le First Person Controller.)
Tu peux chercher un peu sur l'Asset Store aussi, tu dois aussi avoir des Controllers gratuits pour fouiller dans le code et le Setup du rigidbody.
Ta sphère possède un rigidbody, tu dois donc utiliser la physique du moteur pour les déplacements. Et cela passe par le rigidbody et non pas par le transform du gameObject.
Avant d'aller plus loin, je te conseille de te renseigner sur le Character Controller. Sur ce forum et sur le net.
Tu peux t'aider de la documentation (manual) pour la théorie sur le rigidbody, des Unity Learn pour les explications et tutos (officiels donc en anglais) et enfin d'exemples. (Dans les StandardAssets d'Uinty Technology, tu as un exemple de Caracter Controller, le First Person Controller.)
Tu peux chercher un peu sur l'Asset Store aussi, tu dois aussi avoir des Controllers gratuits pour fouiller dans le code et le Setup du rigidbody.
"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