Page 1 sur 1

[DB-AL] Appliquer une rotation d'un object par rapport au curseur

Publié : 15 Sep 2018 12:53
par FriteCoca
Bonjour,

J'ai fais un script pour appliquer une rotation selon la position de mon curseur. J'ai envie de reproduire l'effet du double curseur. ( Avoir un curseur central qui ne bouge pas et un autre qu'on peut déplacer. Quand je déplace la souris, le curseur central vient rejoindre le curseur déplaçable en faisant faire une rotation à mon gameobjects. )

Noir = curseur central
Rogue = curseur déplacable

Image

J'ai essayé avec mon script de récupérer la différence entre les valeur x et y du vaisseaux et du curseur via WorldToScreenPoint mais rien n'y fait. Quand j'essaye d'appliquer ces valeur pour corriger la position du vaisseau ça part en vrille

Code : Tout sélectionner

Vector3 screenPos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0);
            cursor.position = screenPos;

            Vector3 worldScreen = Camera.main.WorldToScreenPoint(transform.position);

            float yDist = worldScreen.y - cursor.position.y;
            float xDist = worldScreen.x - cursor.position.x;


            float mousexRot = mouseX * shipTurnSpeed;
            float mouseyRot = mouseY * shipTurnSpeed;

            Vector3 rot = transform.rotation.eulerAngles;

            rot.x -= mouseyRot;
            rot.y += mousexRot;

            transform.rotation = Quaternion.Euler(rot);

Re: [DB-AL] Appliquer une rotation d'un object par rapport au curseur

Publié : 15 Sep 2018 17:34
par Max
Bonjour,

En parcourant ton code rapidement, cela ne semble pas incohérent. Mais un bout de code ne permet pas toujours de se faire une idée d'ensemble malheureusement.
C'est quoi mouseX et mouseY par exemple ?

Re: [DB-AL] Appliquer une rotation d'un object par rapport au curseur

Publié : 15 Sep 2018 20:22
par FriteCoca
Elles représentent :

Code : Tout sélectionner

Input.GetAxis("Mouse X")
et

Code : Tout sélectionner

Input.GetAxis("Mouse Y")

Re: [DB-AL] Appliquer une rotation d'un object par rapport au curseur

Publié : 16 Sep 2018 10:43
par Max
Hello,

ton bout de code comporte deux choses différentes visiblement.
Pour ce qui est de la gestion du ton gameobject par la souris, je dirais que c'est pas mal.
Par contre niveau script, je ne comprends pas trop ce que tu cherches à faire avec le transform 'cursor', même si j'ai bien en tête ce que tu expliques plus haut concernant l'effet recherché. C'est le transform de quoi cursor, un sprite, un élément UI ? Dans la partie code que tu fournis, xDist et yDist sont calculées mais tu les emploies comment par la suite ?
Si c'est un UI par exemple, et que tu souhaites le ramener vers le centre écran, c'est lié au proportions de ton screen fournis par exemple par Screen (genre width/2, etc...).