Page 1 sur 1

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

Publié : 15 Juin 2019 16:42
par Marin
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

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

Publié : 15 Juin 2019 16:54
par Max
Salut,

poste ton code, cela sera plus simple pour nous.

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

Publié : 15 Juin 2019 17:39
par Marin

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);
	}
}

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

Publié : 15 Juin 2019 18:14
par Max
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;

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

Publié : 16 Juin 2019 18:51
par Marin
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