[RESOLU] Je n'arrive pas à effectuer les mouvements de mes ennemies comme je veux

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

[RESOLU] Je n'arrive pas à effectuer les mouvements de mes ennemies comme je veux

Message par Paullux » 02 Nov 2017 23:40

Bonjour,

Je me bats pour effectuer le mouvement de mes ennemies, qui ont un rigidbody pour ne pas passer au travers des murs et des objets.

Au départ j'avais une solution qui semblait satisfaisante :
V1 :

Code : Tout sélectionner

 if (!ZombieDead)
            {
                transform.rotation = Quaternion.LookRotation(Vector3.RotateTowards(transform.forward, wantedRotation, 0.1f, 0.0f));
                if (ZPV > 20)
                {
                   GetComponent<Rigidbody>().transform.position = Vector3.MoveTowards(transform.position, newWantedPosition, speed * Time.deltaTime);
                }
(en vérouillant les mouvement sur Y et les 3 rotations...)
Mais les méchants recule d'un coup lors d'une collision avec un objet en mouvement comme une balle de flipper.

j'ai chercher sur internet et j'ai trouvé AddForce, mais les méchants gardent une inertie trop importante et continuent leurs mouvements au lieu de se déplacer vers moi pour m'attaquer.

V2 :

Code : Tout sélectionner

if (!ZombieDead)
            {
                transform.LookAt(newWantedPosition);
                if (ZPV > 20)
                {
                   GetComponent<Rigidbody>().AddRelativeForce((newWantedPosition - transform.position).normalized * 2500 * Time.smoothDeltaTime);
                }
Savez-vous comment faire pour que leurs mouvements correspondent à mon désir... soit en bloquant l'effet balle de flipper sans les voir traverser les murs, soit en ayant un moyen de les faire mouvoir toujours là où ils regardent.

J'ai aussi essayé de leur donner un poids de 5000 unités et coché la case gravité sans plus de succès.
Dernière édition par Paullux le 03 Nov 2017 14:11, édité 1 fois.
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Je n'arrive pas à effectuer les mouvements de mes ennemies comme je veux

Message par ZJP » 03 Nov 2017 00:16

C'est un MovePosition qu'il faut employer pour déplacer un RigidBidy et ne pas toucher au Transform.
Les déplacements doivent être dans une boucle "FixedUpdate" etc ...

Sinon, jettes un œil ici... Sait-t'on jamais... :mrgreen:

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

[RESOLU] Re: Je n'arrive pas à effectuer les mouvements de mes ennemies comme je veux

Message par Paullux » 03 Nov 2017 14:10

Merci, le problème est résolu grâce à ce que tu m'as dis et grâce à :

Code : Tout sélectionner

    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.name == "ForLife" || other.gameObject.name == "GunCible" || other.gameObject.name == "ArmKnyfe" || other.gameObject.name == "ShutGun")
        {
            GetComponent<Rigidbody>().isKinematic = true;
        }
    }
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Répondre

Revenir vers « Scripting »