У меня возникли проблемы с моим сценарием вращения на орбите:
using UnityEngine;
public class Test : MonoBehaviour {
public Transform target;
public Vector3 targetOffset;
public float distance = 5.0f;
public float maxDistance = 20;
public float minDistance = .6f;
public float xSpeed = 5.0f;
public float ySpeed = 5.0f;
public int yMinLimit = -80;
public int yMaxLimit = 80;
public float zoomRate = 10.0f;
public float speed = 5.0f;
private float xDeg = 0.0f;
private float yDeg = 0.0f;
private float currentDistance;
private float desiredDistance;
private Quaternion currentRotation;
private Quaternion desiredRotation;
private Quaternion rotation;
private Vector3 position;
private Vector3 lastCameraRot;
private void Start()
{
lastCameraRot = transform.rotation.eulerAngles;
Init();
}
private void Init()
{
distance = Vector3.Distance(transform.position, target.position);
currentDistance = distance;
desiredDistance = distance;
position = transform.position;
rotation = transform.rotation;
currentRotation = transform.rotation;
desiredRotation = transform.rotation;
xDeg = Vector3.Angle(Vector3.right, transform.right);
yDeg = Vector3.Angle(Vector3.up, transform.up);
}
private void LateUpdate()
{
if (Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Moved)
{
Vector2 touchposition = Input.GetTouch(0).deltaPosition;
xDeg += touchposition.x * xSpeed * 0.002f;
yDeg -= touchposition.y * ySpeed * 0.002f;
yDeg = ClampAngle(yDeg, yMinLimit, yMaxLimit);
}
desiredRotation = Quaternion.Euler(yDeg, xDeg, 0);
currentRotation = transform.rotation;
rotation = Quaternion.Lerp(currentRotation, desiredRotation, Time.deltaTime * speed);
transform.rotation = rotation;
}
private static float ClampAngle(float angle, float min, float max)
{
if (angle < -360)
angle += 360;
if (angle > 360)
angle -= 360;
return Mathf.Clamp(angle, min, max);
}
}
Приведенный выше рисунок показывает, что происходит. Почему-то каждый раз, когда я запускаю игру, камера перемещается сама дважды. Один раз он двигается немного влево, затем снова влево, на расстоянии около 1 секунды друг от друга, затем остается там. Я, однако, хочу, чтобы он остался там, где он есть. Почему он это делает? <- преобразование как камеры, так и куба (цель). У них нет родителей Камера должна оставаться там, где она есть, но она сдвигается дважды каждый раз, когда начинается игра </p>