J'ai essayé ces deux scripts C# pour tourner ma lumière directionnelle:Pourquoi ma lumière directionnelle tourner que de 90º à -90º (Unity 5.5)
using System.Collections;
using UnityEngine;
public class LightRotator : MonoBehaviour
{
void Update()
{
transform.rotation = Quaternion.Euler(transform.eulerAngles.x + 1.0f,
transform.eulerAngles.y,
transform.eulerAngles.z);
}
}
et
using System.Collections;
using UnityEngine;
public class LightRotator : MonoBehaviour
{
void Update()
{
transform.localEulerAngles = new Vector3(transform.localEulerAngles.x + 1.0f,
transform.localEulerAngles.y,
transform.localEulerAngles.z);
}
}
Ils les deux semblent fonctionner exactement de la même manière: Si je change transform.eulerAngles.y
en transform.eulerAngles.y + 0.5f
, la lumière tournera le long de l'axe des ordonnées, et la même chose fonctionnera pour l'axe z. Cependant, quand j'essaie de faire cela avec l'axe des x, il va tourner jusqu'à ce qu'il atteigne 90º, à quel point il continuera à essayer de tourner mais il repoussera immédiatement et continuellement à 90º. Si j'inverse la direction, il fait la même chose à -90º. Par exemple, la rotation peut être: 88,5,89,0,89,5,90,0, 90,5, 89,93, 90,24, 89,4, etc.
Quelle est la cause de ce blocage et comment puis-je le réparer?
Malheureusement, je ne suis pas en mesure de reproduire le problème étant donné les informations que vous avez fournies. Avez-vous une chance de fournir un exemple de code court et autonome? – rutter
[mvce] (http://stackoverflow.com/help/mcve) – zwcloud
@rutter J'ai ajouté les scripts complets. – TrumpetDude