Je suis en train d'écrire un mouvement pour mon objet spatial de jeu et de vaisseau spatial (joueur) avec le curseur de la souris.Unité: Mouvement spécial pour le jeu
ont actuellement code suivant:
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public class Move : MonoBehaviour {
public float speed = 1.5f;
public float rotationSpeed = 90f;
public float rotPrecision = 0.1f;
public float movePrecision = 0.1f;
private Vector3 pos;
private Quaternion qTo;
void Start() {
pos = transform.position;
qTo = transform.rotation;
}
void Update() {
if (!EventSystem.current.IsPointerOverGameObject())
{
if (Input.GetMouseButtonDown(0) || Input.GetMouseButton(0))
{
pos = Input.mousePosition;
pos.z = transform.position.z - Camera.main.transform.position.z;
pos = Camera.main.ScreenToWorldPoint(pos);
}
var dir = pos - transform.position;
qTo = Quaternion.LookRotation(Vector3.forward, pos - transform.position);
if (Quaternion.Angle(transform.rotation, qTo) >= rotPrecision) //just set your own precision
transform.rotation = Quaternion.RotateTowards(transform.rotation, qTo, Time.deltaTime * rotationSpeed);
if (Vector3.Distance(transform.position, pos) > movePrecision) // 0.1f
transform.Translate(Vector3.up * speed * Time.deltaTime);
}
}
}
Mais j'ai le problème avec la précision et la rotation mouvement lorsque le point est trop proche de joueur (avoir boucle infinie).
L'idée de ce système de mouvement décrit avec l'image suivante:
(acteur joueur est vert, le chemin est gris, et le point de destination est rouge).
J'espère que quelqu'un pourrait me aider w/que.
Merci!
Pourriez-vous partager un exemple de code ou une explication de quelle précision vouliez-vous parler? – featureoffuture
Il semble que le code que vous utilisez actuellement tente déjà de faire le calcul de précision. Essayez d'ajuster les valeurs rotPrecision et movePrecision à une valeur plus élevée. N'oubliez pas que vous devez le faire dans l'inspecteur, pas dans le code. – Doh09
J'ai essayé n'importe quoi ... mais rien ne fonctionne correctement ... – featureoffuture