Как заставить камеру двигаться в сторону взора?
Пробовал от точки к точке, но при переходе от одной точке к другой, он начинает летать по непонятной траектории.
Использовал LookAt, чтобы камеру наводить на точку.
using UnityEngine;
using System.Collections;
public class camera : MonoBehaviour {
public GameObject point;
public GameObject point2;
public float speed;
public bool touch;
Vector3 vec;
Vector3 moveDirection;
void Start () {
touch = false;
vec = point.transform.position;
transform.LookAt (vec);
}
// Update is called once per frame
void FixedUpdate () {
if (!touch) {
transform.Translate (Vector3.Normalize (vec - transform.position) * Time.deltaTime * speed);
//transform.LookAt (vec);
Debug.Log (touch);
} else {
Debug.Log(touch);
//transform.Translate (Vector3.Normalize (vec - transform.position) * Time.deltaTime * speed);
transform.Rotate(new Vector3(0,-0.8f,0)* Time.deltaTime * speed);
if(Mathf.Abs(transform.rotation.y) > 0.6 && Mathf.Abs(transform.rotation.y) < 0.7)
{
touch = false;
vec = point2.transform.position;
transform.LookAt (vec);
}
// Debug.Log("rot : " + transform.rotation.x);
// Debug.Log("rot : " + transform.rotation.y);
//Debug.Log("rot : " + transform.rotation.z);
// Debug.Log("loc : " + transform.localRotation);
/*transform.LookAt (vec);
Debug.Log("dw");
touch = false;
vec = point2.transform.position;*/
}
}
void OnTriggerEnter(Collider camer)
{
touch = true;
//Debug.Log("dwad");
}
}
В данном коде, я лечу к первой точке, после столкновения коллайдеров, камера останавливается, поворачивается и переключается на положение второй точки, но летит не прямо, как к певрой точке, а по дуге...