Jump to content
UnitySpain

nokiz

Registrados
  • Content Count

    3
  • Joined

  • Last visited

  • Days Won

    1

nokiz last won the day on May 28

nokiz had the most liked content!

Community Reputation

4 Neutral

About nokiz

  • Rank
    Recién Llegado

Profile Information

  • Especialidad
    Coder

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Perdón por tardar en contestar, pero gracias a todos! Al final he conseguido el efecto que quería ayudado por vuestros consejos. En respuesta a @pioj he de decir que leí que muchas veces se abusa del lerp cuando se puede usar MoveTowards que es más eficiente para la cpu. Toda la razón, @lightbug Gracias, @Cappa, me guardo tu script. Me vendrá bien más adelante. Os dejo con el código con el que al final lo he solucionado por si le viene bien a alguien en un futuro. public class CameraController : MonoBehaviour { // Vars assigned in inspector (public) public Transform firstPersonCamera = null; public Transform thirdPersonCamera = null; // Private vars private Transform target = null; void Update () { if (Input.GetKeyUp("v")) { if (transform.position == thirdPersonCamera.position) { target = firstPersonCamera; } else { target = thirdPersonCamera; } } if (target) { transform.position = Vector3.MoveTowards(transform.position, target.position, 5 * Time.deltaTime); } } }
  2. 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; target = null; } } } Aclaración: firstPersonCamera y thirdPersonCamera son gameObjects vacios en los puntos a los que quiero que se mueva la cámara.
×
×
  • Create New...