Faire marcher un personnage vers un clic 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
Pentos
Messages : 45
Inscription : 13 Fév 2013 15:44

Faire marcher un personnage vers un clic souris

Message par Pentos » 05 Mars 2015 17:21

Bonjour à tous,

J'aimerais savoir comment il est possible de jouer une animation pour faire marcher un personnage vers un clic souris. Je m'explique :

J'ai des animations qui me permettent de faire marcher, courir ect mon personnage avec :

Code : Tout sélectionner

		
anim.SetFloat("Speed", Input.GetAxis("Horizontal"));										
anim.SetFloat("Direction", Input.GetAxis("Vertical")); 
en utilisant :

Code : Tout sélectionner

if (Input.GetMouseButtonDown(0))
{
	RaycastHit hit;
	Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
	if (Physics.Raycast(ray, out hit))
	{
		newPosition = hit.point;
		transform.position = newPosition;
	}
}
je peux déplacer mon personnage d'un point A à l'endroit ou je clique avec la souris mais j'aimerais jouer l'animation pour que mon personnage marche du point A vers le point B.

Merci par avance

Elessar Elanesse
Messages : 100
Inscription : 13 Nov 2012 14:44

Re: Faire marcher un personnage vers un clic souris

Message par Elessar Elanesse » 05 Mars 2015 18:32

Salut,

Alors déjà avec ton code, ton personnage se 'Téléporte' là où tu cliques. Donc je ne vois pas en quoi lancer l'animation de 'Marche' serait utilise, vu que ton joueur ne voit même pas le personnage se déplacer.

Donc il serait peut être mieux de faire en sorte de lancer une Méthode : Move()
Dans laquelle tu fais une boucle :

Code : Tout sélectionner

Move()
{
while ( Position.joueur != Position.Click)
{
//Translate Position vers Position Click
//Set Float animation
}
}
(Tu peux aussi regarder du côté du Plugin : iTween et sa méthode : MoveTo)
Et si tu veux que ton personnage se déplace toujours à la même allure en fonction de la Distance à parcourir, tu fais une petite méthode :

Code : Tout sélectionner

iTween.MoveTo(personnage.transform.position,positionCible,tempsParcours(personnage.transform.position,positionCible));

public floatTempsParcours(Vector3 persoPosition, Vector3 positionCible)
{
return Vector3.Distance (a,b)/speed;
/!\ Ordre de a et b à vérifier.
}
Speed = 1 -> 1 Unity Unit/s
Speed = 2 -> 2 Unity Unit/s
Développeur C# / Unity3D | Game Designer de Formation
Développeur Java / Php - En cours de Formation

Projets en Cours :
- Exode (Univers META-Pere)

• If you know the enemies and know yourself, you don't need to fear the result of a hundred battles •

Pentos
Messages : 45
Inscription : 13 Fév 2013 15:44

Re: Faire marcher un personnage vers un clic souris

Message par Pentos » 05 Mars 2015 21:16

Merci pour ta réponse je vais regarder de ce coté là ;)

Répondre

Revenir vers « (C#) CSharp »