Jump to content

Search the Community

Showing results for tags 'fps'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Proyectos
    • Offtopic
    • Unity Feeds
    • Website
    • Youtube
  • Mesa de ayuda
    • Unity
    • Arte
    • Builds & Dispositivos
    • Otras Especialidades
  • Aportes de la Comunidad
    • Recursos
    • Eventos
  • Bolsa de trabajo & Colaboraciones
    • Ofertas y Demandas

Blogs

There are no results to display.

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Especialidad

Found 3 results

  1. Muy buenas. Tengo un problema con el que llevo unos días liado y no consigo resolver. Me pregunto si alguien podría ayudarme. En esta StartCourutine, la cámara de mi personaje FPS centra la vista en un objetivo concreto y hace un zoom In. Tras pasar unos segundos, hace un zoom Out. Hasta aquí bien. El problema viene cuando al terminar de hacer este zoom out y volver a tener control sobre mi personaje, la cámara hace un giro muy brusco. He estado mirando por ahí y parece que esto se debe a que la cámara guarda la rotación anterior a cuando centra al objetivo. De manera que cuando vuelve, la cámara vuelve a la rotación original. Supongo que la solución está en guardar las coordenadas de esta rotación antes y establecerlas cuando termine el zoom out. Pero no sé cómo se hace. Si alguien pudiera ayudarme lo agradecería enormemente. Un saludo y gracias por leerme. Aquí el script: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; using UnityStandardAssets.Characters.FirstPerson; public class centrarObjetivo : MonoBehaviour { public float segundos = 1f; IEnumerator tiempoCentrarObjetivo () { GameObject.Find ("FPSController").GetComponent<CharacterController> ().enabled = false; GameObject.Find ("FPSController").GetComponent<FirstPersonController> ().enabled = false; Vector3 relativePos = new Vector3 (GameObject.Find ("objetivo").transform.position.x, GameObject.Find ("objetivo").transform.position.y + 0f, GameObject.Find ("objetivo").transform.position.z) - GameObject.Find ("FirstPersonCharacter").transform.position; Quaternion toRotation = Quaternion.LookRotation (relativePos); GameObject.Find ("FirstPersonCharacter").transform.rotation = Quaternion.Lerp (GameObject.Find ("FirstPersonCharacter").transform.rotation, toRotation, 2.5f * Time.deltaTime); GameObject.Find ("FirstPersonCharacter").GetComponent<Camera> ().fieldOfView = Mathf.Lerp (GameObject.Find ("FirstPersonCharacter").GetComponent<Camera> ().fieldOfView, 10f, Time.deltaTime * 0.2f); yield return new WaitForSeconds (segundos * 4); GameObject.Find ("FirstPersonCharacter").GetComponent<Camera> ().fieldOfView = Mathf.Lerp (GameObject.Find ("FirstPersonCharacter").GetComponent<Camera> ().fieldOfView, 90f, Time.deltaTime * 3f); yield return new WaitForSeconds (segundos * 2); GameObject.Find ("FPSController").GetComponent<CharacterController> ().enabled = true; GameObject.Find ("FPSController").GetComponent<FirstPersonController> ().enabled = true; } void Update () { StartCoroutine ((tiempoCentrarObjetivo ())); } }
  2. Desarrollo en Unity 2019.3. Una primera aproximación a un FPS sin prácticamente optimización más allá de los lightmaps del entorno. Es posible utilizar diferentes FX dependiendo del material de contacto. He utilizado algunos assets de pago y otros gratuitos en los apartados de diseño solamente. El código y la integración es mío desde cero. El canal de youtube para seguir las actualizaciones es: https://www.youtube.com/user/LosSopranoNet/videos
  3. Hola de nuevo Como dice en el titulo, estoy tratando de crear el retroceso de un arma, pero de un modo... suavizado, en un principio pensé en usar corrutinas, pero como bien me an explicado los compañeros, no sirven para lo que creía . void Retroceso() { punto_inicial = new Vector3(camara.transform.localEulerAngles.x,camara.transform.localEulerAngles.y); camara.transform.localEulerAngles = new Vector3(camara.transform.localEulerAngles.x - 4f, camara.transform.localEulerAngles.y); // esto es el retroceso en si camara.transform.localEulerAngles = Vector3.Lerp(camara.transform.localEulerAngles,punto_inicial, 1f); // el suabizado de el que hablaba } Retroceso, solo se llama una vez, en el momento en el que presionas el botón derecho de el ratón hacia abajo. El problema esta en que, como todo se ejecuta en un solo fotograma, desaparece ese efecto de retroceso, la pregunta seria que: como ago para que primero se ejecuten punto_inicial = new Vector3(camara.transform.localEulerAngles.x,camara.transform.localEulerAngles.y); camara.transform.localEulerAngles = new Vector3(camara.transform.localEulerAngles.x - 4f, camara.transform.localEulerAngles.y); y cuando se acabe de ejecutar inicie este otro camara.transform.localEulerAngles = Vector3.Lerp(camara.transform.localEulerAngles,punto_inicial, 1f); Gracias de antemano
×
×
  • Create New...