Cela a été un problème depuis une semaine maintenant. Je n'arrive pas à comprendre. J'essaie de retourner mon sous-marin sur son axe y une fois qu'il est à l'envers. il tourne sur la position de ma souris.Erreur d'erreur de # c ne peut pas retourner mon sous-marin sur son axe des y
Ce code fait pivoter mon sous-marin sur la position de la souris, ce qui est parfait.
Vector3 RayPos = cam.WorldToScreenPoint(transform.position);
Vector3 dir = Input.mousePosition - RayPos;
float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
Quaternion rotation = Quaternion.AngleAxis(angle, Vector3.forward);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation,
rotateSpeed * Time.deltaTime);[sub flipping y][1]
Maintenant, ce code est mon problème. Une fois que mon sub va à l'envers, il retourne (y) mais il le fait seulement une fois et puis quand je reviens dans la bonne direction il ne retournera plus sur (y) plus.
Debug.Log(Mathf.Abs(Vector3.Dot(transform.up, Vector3.up)));
if (Mathf.Abs(Vector3.Dot(transform.up, Vector3.down)) < 0.125f)
{
if (Mathf.Abs(Vector3.Dot(transform.right, Vector3.down)) > 0.825f)
{
SubTrans.localScale = new Vector3(transform.localScale.x, -1,
transform.localScale.z);
}
else
{
SubTrans.localScale = new Vector3(transform.localScale.x, 1,
transform.localScale.z);
}
}
C'est la deuxième fois que vous posez cette question. Vous n'obtenez pas de réponses parce qu'il est difficile de comprendre votre problème. Peut-être que vous devriez montrer le gif animé de ce à quoi ressemble le problème. – Programmer