IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Unity Discussion :

déplacer un cube


Sujet :

Unity

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    octobre 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2006
    Messages : 130
    Points : 0
    Points
    0
    Par défaut déplacer un cube
    Salut à tous,

    J'aimerais résoudre le problème suivant :

    Il faudrait que je déplace un cube le long d'un plan incliné avec la souris. Les images parlent d'elle mêmes (voici exactement ce dont je rêve)

    https://ibb.co/sQxrS7B

    J'ai déjà regardé sur Internet et je n'ai rien trouvé de valable.

    Votre aide et surtout votre code sont les bienvenues.

    Dans l'attente d'une aide précieuse,

    A+

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    juin 2010
    Messages
    6 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 6 670
    Points : 30 447
    Points
    30 447
    Billets dans le blog
    4
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Expert éminent
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    2 988
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 2 988
    Points : 9 288
    Points
    9 288
    Par défaut
    Au moins il est téméraire
    Je renvoie un sujet sur OpenGL sur le picnking :
    https://www.developpez.net/forums/d2...-objet-opengl/

    Vu que le principe est le même et que j'explique n'est pas orienté OpenGL , donc marche sur n'importe quel API , mais je pense qu'il y'a sur Unity quelque fonction pour faciliter le taff.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    octobre 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2006
    Messages : 130
    Points : 0
    Points
    0
    Par défaut
    Salut,

    Vous comprenez pourquoi j'envoie beaucoup de messages sur le Drag An Drop.
    C'est qu' a chaque fois vous ne m’apprenez pas ce que je cherche.

    Je cherche juste à coder un drag and drop à un cube.
    https://ibb.co/sQxrS7B

    Merci à vous,

    A+

  5. #5
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    janvier 2014
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2014
    Messages : 512
    Points : 1 783
    Points
    1 783
    Par défaut
    Tiens, ça fait depuis quasiment Mars que tu es dessus, c'est contre les règles du forum mais tant pis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
     
    /// <summary>
    /// Managet to move every object on a plane surface.
    /// </summary>
    public class ObjectMoverManager : MonoBehaviour
    {
        GameObject movingObject;
        Vector3 positionZero;
        Plane plane;
     
        /// <summary>
        /// Update the manager.
        /// </summary>
        void Update()
        {
            if (Input.GetMouseButtonDown(0))
            {
                Ray mouseRay = GetMouseRay();
                RaycastHit hit;
     
                if (Physics.Raycast(mouseRay.origin, mouseRay.direction, out hit))
                {
                    movingObject = hit.transform.gameObject;
                    plane = new Plane(Vector3.up, movingObject.transform.position);
                    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                    float rayDistance;
                    plane.Raycast(ray, out rayDistance);
                    positionZero = movingObject.transform.position - ray.GetPoint(rayDistance);
                }
            }
     
            else if (Input.GetMouseButton(0) && movingObject)
            {
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
     
                float rayDistance;
     
                if (plane.Raycast(ray, out rayDistance))
                {
                    movingObject.transform.position = ray.GetPoint(rayDistance) + positionZero;
                }
            }
     
            else if (Input.GetMouseButtonUp(0) && movingObject)
            {
                movingObject = null;
            }
        }
     
        /// <summary>
        /// Get the mouse ray.
        /// </summary>
        /// <returns>Ray of the mouse.</returns>
        private Ray GetMouseRay()
        {
            Vector3 mousePositionFar = new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.farClipPlane);
            Vector3 mousePositionNear = new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.nearClipPlane);
            Vector3 mousePositionF = Camera.main.ScreenToWorldPoint(mousePositionFar);
            Vector3 mousePositionN = Camera.main.ScreenToWorldPoint(mousePositionNear);
     
            Ray mouseRay = new Ray(mousePositionN, mousePositionF - mousePositionN);
     
            return mouseRay;
        }
    }
    Tu créer un nouvel EmptyObject que t'appelles MovingManager ou comme tu veux, tu lui ajoute le script là et tu pourras bouger tous les objets de ton jeu sur un plan, sans changer quoi que ce soit.

    La preuve que ça marche

    https://streamable.com/3ahjem

    Voilà, on peut pas faire aussi simple, si tu n'y arrives pas, on ne peut plus rien pour toi.
    Keep calm and debug it

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    octobre 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2006
    Messages : 130
    Points : 0
    Points
    0
    Par défaut
    Je vous remercie infiniment pour votre réponse.

    Le code marche parfaitement (je n'aurais pas pu trouver tout seul).

    C'est exactement ce que je cherchais,

    Merci beaucoup,

    Julius

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 17
    Dernier message: 11/11/2008, 10h01
  2. [direct3d][c#]créer un cube et le sauvegarder
    Par maxvador dans le forum DirectX
    Réponses: 2
    Dernier message: 23/05/2003, 23h08
  3. Réponses: 5
    Dernier message: 24/04/2003, 22h08
  4. Déplacer la sélection d'une ligne dans un stringgrid
    Par jer64 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 14/03/2003, 00h57
  5. TChart : déplacer un point
    Par Nicolas dans le forum C++Builder
    Réponses: 3
    Dernier message: 06/11/2002, 18h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo