[RESOLU][DB AL] Déplacer un Rigidbody vers le curseur de la souris

Pour les scripts écrits en C#
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
Marin
Messages : 24
Inscription : 12 Avr 2018 11:59

[RESOLU][DB AL] Déplacer un Rigidbody vers le curseur de la souris

Message par Marin » 15 Juin 2019 16:42

Bonjour, cela fait quelques heures que je cherche mais je ne trouve rien qui fonctionne pour moi, je me permets donc de poster un message sur ce forum.

Je travaille sur un Jeux 2D. J'ai une scène avec un GameObject qui possède un Rigidbody. Je souhaite appliquer une force à ce Rigidbody pour que celui-ci se déplace vers le curseur de ma souris.

J'ai créé un vecteur2 dans la void Update nommé mousePosition qui correspond à la position de ma souris. Je sais que l'on peut appliquer une force à un RigidBody avec AddForce ou velocity mais cela envoie mon objet dans une direction donné et non pas vers un point dans l'espace... HELP PLEAS
Dernière édition par Marin le 16 Juin 2019 18:52, édité 1 fois.

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: [DB AL] Déplacer un Rigidbody vers le curseur de la souris

Message par Max » 15 Juin 2019 16:54

Salut,

poste ton code, cela sera plus simple pour nous.
Image
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

Marin
Messages : 24
Inscription : 12 Avr 2018 11:59

Re: [DB AL] Déplacer un Rigidbody vers le curseur de la souris

Message par Marin » 15 Juin 2019 17:39

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Controler : MonoBehaviour {

	public GameObject CameraIn;
	public Rigidbody2D rb;
	Vector3 mousePosition;
	public float Speed;
	float MouseX, MouseY;
	
	void Update ()
	{
		//fait tourner le personage en direction de la souris
		mousePosition = Input.mousePosition;
		mousePosition = Camera.main.ScreenToWorldPoint(mousePosition);
		Vector2 direction = new Vector2(mousePosition.x - transform.position.x, mousePosition.y - transform.position.y);
		transform.right = direction;

		//faire deplacer le rigidbody vers la souris??

	}
	void FixedUpdate()
	{
		CameraIn.transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z -3);
	}
}

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: [DB AL] Déplacer un Rigidbody vers le curseur de la souris

Message par Max » 15 Juin 2019 18:14

re,

je comprends mieux. Tu t'es basé sur ce tuto visiblement.
La souris te fournis une direction en fait. Donc pour le Rigidbody, tu peux lui appliquer une vélocité avec pour composante cette direction, genre:

Code : Tout sélectionner

rb.velocity = direction * Speed;
Image
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

Marin
Messages : 24
Inscription : 12 Avr 2018 11:59

Re: [DB AL] Déplacer un Rigidbody vers le curseur de la souris

Message par Marin » 16 Juin 2019 18:51

Génial, et en ajoutant un "* Time.deltaTime" je crée un mouvement continu jusqu'à ce que le GameObject arrive au curseur de la souris :-D

Merci beaucoup

Répondre

Revenir vers « (C#) CSharp »