Мой объект, вместе с камерой, меняет вектор передвижения при нажатии кнопки. Мне нужно, чтобы камера меняла позицию до передвижения, но все работает только, когда объект стоит на месте, иначе камера теряет его. (центр камеры при нажатии должен переходить на расстояние двух векторов (вектор равен от центра камеры до объекта по оси x))
Когда нет движения все работает:
После передвижения и поворота:
ic class BSMoving : MonoBehaviour
{
public GameObject person;
public Vector3 camdirection;
public Vector3 moveVector = Vector3.right;
public float speed = 30f;
public bool inmoving;
public bool inmovingR = true;
void Start()
{
camdirection = new Vector3(2*(person.transform.position.x - GameObject.FindGameObjectWithTag("MainCamera").GetComponent<Camera>().transform.position.x), GameObject.FindGameObjectWithTag("MainCamera").GetComponent<Camera>().transform.position.y, GameObject.FindGameObjectWithTag("MainCamera").GetComponent<Camera>().transform.position.z);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
inmoving = !inmoving;
}
if (Input.GetKeyDown(KeyCode.Mouse1))
{
GameObject.FindGameObjectWithTag("MainCamera").GetComponent<Camera>().transform.position = camdirection;
camdirection = new Vector3(2*person.transform.position.x - camdirection.x, camdirection.y, camdirection.z);
inmovingR = !inmovingR;
}
if (inmovingR && inmoving)
{
person.transform.Translate(moveVector * speed * Time.deltaTime);
}
if (!inmovingR && inmoving)
{
person.transform.Translate(-moveVector * speed * Time.deltaTime);
}
}
}