Je me tourne vers vous après quelques jours de recherche sur le sujet, mais malheureusement j'ai trouvé des vidéos qui m'expliquent le [Click To Moov Mouse], mais je connais déjà cela mais depuis 4 - 5 mois je travaille sur un jeu que je veux déployer sur smartphone, est la plupart des avis que j'ai eux sur le sujet, 80% des personnes, n'aime pas le joystick donc je me suis orienté vers le [click To moov mobile].
Donc j'aimerais savoir si une personne s'y connaissant suffisamment sur le [keybord mobile], pouvais modifier mon script actuel de [Click To Moov Mouse] pour le mobile.
PS: Je suppose que je dois juste changer le [Input Mouse Position], mais je sais que c'est un genre [Input.GetTouch(0)], mais j'ai essayé plusieurs choses sans succès, donc si une personne voudrait bien m'expliquer en même temps que de le modifier car j'aimerai savoir le pourquoi du comment, si je veux le réutiliser plus tard :p
Merci de votre compréhension.
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace CliqueDeplacement
{
public class CliqueDeplacement : MonoBehaviour
{
public float Vitesse;
private Vector3 targetPosition;
private bool mooving = false;
private Animator animator;
private void Start()
{
targetPosition = transform.position;
animator = GetComponent<Animator>();
}
public void Update()
{
//if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Ended)
if( Input.GetMouseButtonUp(0))
{
SetTargetPosition();
}
if (mooving)
{
MoovingPlayer();
}
}
void MoovingPlayer()
{
transform.LookAt(targetPosition);
transform.position = Vector3.MoveTowards(transform.position, targetPosition, Vitesse * Time.deltaTime);
animator.SetBool("Marcher", true);
if (transform.position.Equals(targetPosition))
{
mooving = false;
animator.SetBool("Marcher", false);
}
Debug.DrawLine(transform.position, targetPosition, Color.blue);
}
void SetTargetPosition()
{
Plane plane = new Plane(Vector3.up, transform.position);
float point = 0f;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (plane.Raycast(ray, out point))
{
targetPosition = ray.GetPoint(point);
}
mooving = true;
}
}
}