Hola! Mi problema es que quiero mover la cámara de un punto a otro al pulsar una tecla (v).
Quiero que el movimiento sea gradual, no que simplemente cambie de un punto a otro en un instante. Tambíen que si se vuelve a pulsar la tecla, vuelva a la primera posición.
Todo lo que he investigado me ha llevado a lo mismo, pero lo único que consigo es que la cámara se mueva por un instante pero inmediatamente vuelve a su posición inicial. ¿Qúe estoy haciendo mal?
Os dejo el script que le estoy aplicando a la cámara. Muchas gracias!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
// Assigned in inspector
public Transform firstPersonCamera = null;
public Transform thirdPersonCamera = null;
private int state = 0;
private Transform target = null;
void Update () {
if (Input.GetButton("LeftStickButton") || Input.GetKeyUp("v")) {
state = 1;
}
}
void LateUpdate() {
if (state == 1) {
if (Vector3.Distance(transform.position, thirdPersonCamera.position) < 0.001f) {
target = firstPersonCamera;
transform.position = Vector3.MoveTowards(transform.position, target.position, 2 * Time.deltaTime);
} else {
target = thirdPersonCamera;
transform.position = Vector3.MoveTowards(transform.position, target.position, 2 * Time.deltaTime);
}
}
if (state == 1 && Vector3.Distance(transform.position, target.position) < 0.001f) {
state = 0;