У меня есть класс ниже, который я прикрепляю к объекту, чтобы он вращался вокруг его оси. Я отправил стержень спрайта через инспектора.Вращение спрайта вокруг его оси
Это работает именно так, как я тоже хочу, но проблема заключается в том, что всякий раз, когда я касаюсь и перетаскиваю его, а затем снова касаюсь и перетаскиваю его, он привязывается к новой позиции.
Что бы я хотел, чтобы это произошло, когда оно повернуто и затем снова повернуто, спрайт остается в том же вращении, а не привязывается к новому положению, и я хотел бы, чтобы угол спрайта был сброшен на 0. Затем следует, что я хочу, чтобы угол постоянно вращался. Поэтому, если я поворачиваю его в положительном направлении, угол должен продолжать увеличиваться в положительном направлении и не меняться. Так как 0 ---> 360 ----> 720 -----> и т. Д. И т. Д. И тогда когда мышь отпущена, спрайт остается в том же положении, но теперь угол теперь установлен на 0. И затем, когда он снова щелкнет, чтобы повернуть, он вращается с этого точного положения.
Вот мой код, который хорошо работает для вращения, но я хотел бы изменить его для достижения вышеуказанного сценария. Любая помощь в этом?
public class Steering : MonoBehaviour {
float prevAngle,wheelAngle,wheelNewAngle = 0;
public SpriteRenderer sprite;
void Start() {
}
void Update() {
}
public float GetAngle(){
return wheelAngle;
}
void OnMouseDrag(){
Vector3 mouse_pos = Input.mousePosition;
Vector3 player_pos = Camera.main.WorldToScreenPoint(this.transform.position);
mouse_pos.x = mouse_pos.x - player_pos.x;
mouse_pos.y = mouse_pos.y - player_pos.y;
wheelNewAngle = Mathf.Atan2 (mouse_pos.y, mouse_pos.x) * Mathf.Rad2Deg;
if (Input.mousePosition.x > sprite.bounds.center.x) {
wheelAngle += wheelNewAngle - prevAngle;
} else {
wheelAngle -= wheelNewAngle - prevAngle;
}
this.transform.rotation = Quaternion.Euler (new Vector3(0, 0, wheelAngle));
Debug.Log (wheelAngle);
prevAngle = wheelNewAngle;
}
void OnMouseUp(){
prevAngle = wheelNewAngle;
wheelAngle = 0;
}
}
Ответ, данный TheOsirian, был фактически совершенно правильным :) – Fattie
К сожалению, этот вопрос слишком неясен. – Fattie