Click to move 2D

Modérateurs : Administrateurs Suppléants, Community Manager

Emilie24
Messages : 3
Inscription : 17 Avr 2019 16:02

Click to move 2D

Message par Emilie24 » 02 Mai 2019 17:19

Bonjour,

Je suis en train de créer un jeu 2D "point and click" pour une thèse. Mais je débute en programmation. Je m'aide de tutos. Pour le déplacement à la souris je me suis appuyée sur ce tuto : https://www.youtube.com/watch?v=KU2CKBlCAxQ

Celui-ci fonctionne très bien mais que dans un environnement 3D. Si j'applique le script à mon projet 2D, rien ne se passe.

Voici le script en question :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
  using UnityEngine.AI;
    
    public class MoveToClickPoint : MonoBehaviour {
        public LayerMask WhatCanBeClickedOn;
        private NavMeshAgent myAgent;
        
        void Start() {
            myAgent = GetComponent<NavMeshAgent>();
        }
        
        void Update() {
            if (Input.GetMouseButtonDown(0)) {
                Ray myRay = Camera.main.ScreenPointToRay (Input.mousePosition);
                RaycastHit hitInfo;
                
                if (Physics.Raycast(myRay, out hitInfo, 100, WhatCanBeClickedOn)) {
                    myAgent.SetDestination (hitInfo.point);
                }
            }
        }
    }
Je viens donc quérir votre aide. Que faut-il que je change afin que celui-ci s'adapte à mon environnement 2D ? Merci d'avance de votre aide.
.
 ! Message de : Max
Utilisez les balises code SVP
Merci de lire la Charte et sa FAQ, en particulier Comment insérer un script dans un messages ?.

Avatar de l’utilisateur
DevAmat
Messages : 222
Inscription : 23 Nov 2016 11:50

Re: Click to move 2D

Message par DevAmat » 02 Mai 2019 17:30

Bonjour,
Il faudrait plus de précision. Si rien ne se passe c'est peut être qu'il n'y a aucune collision avec le raycast. Commence par vérifier ce point avec un "Debug.Log" par exemple.
Aussi tu dis que ton projet est en 2D, mais cela implique quoi dans ta scène par rapport à la scène 3D précédente?

Emilie24
Messages : 3
Inscription : 17 Avr 2019 16:02

Re: Click to move 2D

Message par Emilie24 » 02 Mai 2019 17:51

Merci pour ta réponse.
Étant donné que je débute, je ne sais pas trop comment testé avec Debug.Log
Pour l'environnement 3D, j'ai seulement fais un plane et une capsule en guise de personnage. Et le click to move a fonctionné ainsi.
Alors que mon projet 2D lui, contient un décors réalisé sur photoshop, un personnage 2D que j'ai dessiné, animé sur animate cc, exporter une feuille de sprite et ensuite importé sur unity. Le personnage contient donc une animation idle qui se déclenche au lancement de la scène.

Je m'y connais vraiment pas en programmation. Moi je suis graphiste et illustratrice à la base. J'ai essayé de trouver quelqu'un pour me réaliser les scripts, mais malheureusement je n'ai trouvé personne, je suis absolument toute seule sur cet énorme projet.

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7038
Inscription : 30 Juil 2011 13:57

Re: Click to move 2D

Message par Max » 02 Mai 2019 18:29

Bonsoir,

Certains components employés en 2D diffèrent de ceux utilisés en 3D. Entre autre pour la partie physique, qui est spécifique à la 2D, les fonctions n'étant donc pas les même (par exemple pour le Raycast, on parlera de Physics2D.Raycast pour la 2D). Idem avec les NavMeshAgents, qui sont spécifiques à la 3D.
D'ailleurs pas sûr qu'il faille passer par des Raycast dans ce cas. Il existe des tuto spécifique 2D pour ce genre de problématique.

Emilie24 a écrit :
02 Mai 2019 17:51
Je m'y connais vraiment pas en programmation. Moi je suis graphiste et illustratrice à la base. J'ai essayé de trouver quelqu'un pour me réaliser les scripts, mais malheureusement je n'ai trouvé personne, je suis absolument toute seule sur cet énorme projet.
Ben là t'as pas fini. Cela ne s'improvise pas. C'est un projet pro ?
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
DevAmat
Messages : 222
Inscription : 23 Nov 2016 11:50

Re: Click to move 2D

Message par DevAmat » 02 Mai 2019 18:48

Effectivement sans bases tu vas galérer.

Avatar de l’utilisateur
evereal
Messages : 106
Inscription : 06 Nov 2015 18:46

Re: Click to move 2D

Message par evereal » 03 Mai 2019 11:27

Hello,

Pour ma part je te conseillerai plutôt de continuer a travailler en 3D.
Projet 2D ou 3D n'ont en vérité que très peu de différence. une caméra en orthographique, l'utilisation des formes 2D et de la physique 2D.
Tu garderas l'avantage de pouvoir utiliser le navmesh qui fonctionne exclusivement sur la 3D.

Je voudrais également mettre en avant le fonctionnement des raycast; Ils ne réagissent qu'au contact d'un composant Collider (collider2D pour le raycast2D). Si le GameObject de ton décor n'est qu'une simple texture, le raycast passera au travers sans rien détecter.
“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 !”

Répondre

Revenir vers « Scripting Javascript, C# et Boo »