Alors, là. Je sais lire les scripts et les corriger. En ce qui concerne la partie Comment faire?, c'est plus difficile à distance de répondre sans tester.
Est-ce que le saut automatique est une bonne solution? Faut-il créer un comportement particulier pour les cubes déplaçables? Ce sont des questions d'agencement auxquelles il te faut réfléchir.
Pour le coup, je ne sais pas ce qui est le mieux, je ne fais pas de jeu avec des personnages.
[DB-AL] pousser et tirer un objet
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 : 6221
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [DB-AL] pousser et tirer un objet
"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] pousser et tirer un objet
Ca marche, je vais tester en parralèle avec du Raycast pour voir si cela peut corriger mes soucis et optimiser mon code.
En tout cas merci beaucoup pour ton aide précieuse !!
En tout cas merci beaucoup pour ton aide précieuse !!
- boubouk50
- ModoGenereux
- Messages : 6221
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [DB-AL] pousser et tirer un objet
Avec plaisir.
Quel que soit le résultat du raycast, si tu pouvais nous faire un petit retour ici, ça pourrait profiter aux autres membres. Et aussi mettre le post en [RESOLU] une fois l'affaire pliée, stp.
Merci.
Quel que soit le résultat du raycast, si tu pouvais nous faire un petit retour ici, ça pourrait profiter aux autres membres. Et aussi mettre le post en [RESOLU] une fois l'affaire pliée, stp.
Merci.
"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] pousser et tirer un objet
Aucun problème au contraireboubouk50 a écrit :Avec plaisir.
Quel que soit le résultat du raycast, si tu pouvais nous faire un petit retour ici, ça pourrait profiter aux autres membres. Et aussi mettre le post en [RESOLU] une fois l'affaire pliée, stp.
Merci.
Re: [DB-AL] pousser et tirer un objet
Bonjour,
Alors je débute aussi mais si je peux tenter d'aider on sait jamais ^^ donc ce que je vais dire est à prendre avec des pincettes/confirmer.
De ce que j'ai vu Gurvan, il vaut mieux utiliser des triggers que des raycasts quand on peut car c'est moins coûteux en ressources il me semble, que d'avoir un raycast qui calcule une position à chaque frame tout le temps. Avec des triggers on a des calculs à chaque frame mais seulement une fois dans le trigger.
Sinon, plutôt que OnTriggerStay n'y aurait-il pas moyen de trouver une solution style (je simplifie pour aller vite) :
Sinon pour savoir ça sert à quoi de le "déparentage"? A ce que ton cube suive les mouvements de ton joueur c'est ça? Mais il était dans un parent à la base ton cube?
Alors je débute aussi mais si je peux tenter d'aider on sait jamais ^^ donc ce que je vais dire est à prendre avec des pincettes/confirmer.
De ce que j'ai vu Gurvan, il vaut mieux utiliser des triggers que des raycasts quand on peut car c'est moins coûteux en ressources il me semble, que d'avoir un raycast qui calcule une position à chaque frame tout le temps. Avec des triggers on a des calculs à chaque frame mais seulement une fois dans le trigger.
Sinon, plutôt que OnTriggerStay n'y aurait-il pas moyen de trouver une solution style (je simplifie pour aller vite) :
Moi je pense je ferai comme ça? Ça te permettrait de l'avoir toujours interactif à chaque frame du moment que t'es dans le trigger non? Ensuite pour le lâcher je ne saurais pas dire comment faire, si il vaut mieux mettre un "while" dans la fonction "InteractionObject" ou si y'a une commande à mettre dans OnTriggerExit qui permet d'annuler la fonction? Style "!InteractionObject()" ? ^^"OnTriggerEnter :
{
InteractionObject();
}
OnTriggerExit:
{
}
void IntercationObject()
{
TonCode
}
Sinon pour savoir ça sert à quoi de le "déparentage"? A ce que ton cube suive les mouvements de ton joueur c'est ça? Mais il était dans un parent à la base ton cube?
Re: [DB-AL] pousser et tirer un objet
Honnêtement je ne sais pas si le raycast est plus gourmand en ressources, je vais comparer toutes les solutions de toute façon.Krafter a écrit :Bonjour,
Alors je débute aussi mais si je peux tenter d'aider on sait jamais ^^ donc ce que je vais dire est à prendre avec des pincettes/confirmer.
De ce que j'ai vu Gurvan, il vaut mieux utiliser des triggers que des raycasts quand on peut car c'est moins coûteux en ressources il me semble, que d'avoir un raycast qui calcule une position à chaque frame tout le temps. Avec des triggers on a des calculs à chaque frame mais seulement une fois dans le trigger.
Sinon, plutôt que OnTriggerStay n'y aurait-il pas moyen de trouver une solution style (je simplifie pour aller vite) :
Moi je pense je ferai comme ça? Ça te permettrait de l'avoir toujours interactif à chaque frame du moment que t'es dans le trigger non? Ensuite pour le lâcher je ne saurais pas dire comment faire, si il vaut mieux mettre un "while" dans la fonction "InteractionObject" ou si y'a une commande à mettre dans OnTriggerExit qui permet d'annuler la fonction? Style "!InteractionObject()" ? ^^"OnTriggerEnter :
{
InteractionObject();
}
OnTriggerExit:
{
}
void IntercationObject()
{
TonCode
}
Sinon pour savoir ça sert à quoi de le "déparentage"? A ce que ton cube suive les mouvements de ton joueur c'est ça? Mais il était dans un parent à la base ton cube?
Je vais essayer ta méthode qui est plus propre que la mienne.
L'histoire du parentage c'est pour permettre à mon perso de tirer ou pousser l'objet uniquement quand il est proche de l'objet et qu'il appuie sur une touche. Le parentage permet effectivement de bouger l'objet en même temps que mon perso comme je lui enlève ses constraints avant de le bouger. J'ai trouvé cette méthode plus simple qu'une application de forces.
Re: [DB-AL] pousser et tirer un objet
Hello,
Pour ma part je partirai sur une autre hierarchie.
Le but sera de passer les controles sur un script associé a ton "Player" et se servir des trigger enter et exit pour alimenter une reference sur la caisse que tu souhaite manipuler.
Pour ta caisse :
Pour ton GameObject "Player", rajouter un script pour les déplacement du genre :
Pour ma part je partirai sur une autre hierarchie.
Le but sera de passer les controles sur un script associé a ton "Player" et se servir des trigger enter et exit pour alimenter une reference sur la caisse que tu souhaite manipuler.
Pour ta caisse :
Code : Tout sélectionner
public class PushandPull : MonoBehaviour
{
void OnTriggerEnter (Collider other)
{
if (other.gameObject.tag == "Player")
{
other.gameObject.getComponent<Player>().caisse = this;
}
}
void OnTriggerExit (Collider other)
{
if (other.gameObject.tag == "Player")
{
other.gameObject.getComponent<Player>().caisse = null;
}
}
}
Code : Tout sélectionner
public class Player : Monobehaviour {
public PushandPull caisse;
if (Input.GetButtonDown("Fire1") && caisse != null)
{
Rigidbody rb = caisse.GetComponent<Rigidbody>();
//on change l'objet de parent
caisse .transform.SetParent(this.transform);
//on ajoute le is kinetic à l'objet
rb = GetComponent<Rigidbody>();
rb.isKinematic = true;
//on débloque le mouvement sur X
rb.constraints = RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezeRotation;
}
}
“La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !”