Jump to content

edgargaza

Registrados
  • Content Count

    3
  • Joined

  • Last visited

  • Days Won

    1

edgargaza last won the day on March 30

edgargaza had the most liked content!

Community Reputation

1 Neutral

About edgargaza

  • 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. Ah ok! No, no lo había visto jejeje Pues según la documentación, básicamente sirve para que la GPU procese más rápido texturas de alta definición. Pero también afecta a, por ejemplo, el tamaño de la build, evidentemente la calidad visual, uso de memoria, etc. "Texture compression format can affect load times, GPU frame times, memory usage, visual quality, build size, and compression times; it is therefore important to understand this subject before you make changes to this setting." Más info aquí: https://docs.unity3d.com/2020.1/Documentation/Manual/texture-compression-formats.html En principio, al ser imágenes tan pequeñas, no creo que sea necesaria en absoluto la compresión (a no ser que alguien más diga lo contrario!), por lo que yo la quitaría directamente, sí.
  2. Buenas! En el apartado de Import Settings (cuando haces clic en el sprite dentro de Unity), debajo pon la opción de "Compression" como "none", o bien como "high quality". Así esto se soluciona.
  3. Buenas!! Bueno, se me ocurre algo rápido. Supongo que estamos hablando de un juego 3D, no? Si es así, podrías capturar una posición en el terreno con la función de Physics.Raycast. Entonces, con un transform.LookAt() en el objeto del personaje ya podrías hacer que la mirase. Después sería hacer el movimiento relativo en vez de global. Confírmame si quieres un movimiento en 3D, y si es así puedo hacerte algún script rápido de ejemplo. EDIT: He sacado un rato y te he hecho el script para un movimiento 3D. Te lo he comentado, aunque es bastante sencillito. Se puede optimizar, pero creo que ya es suficiente para que te hagas una idea de cómo lo haría yo. Ya me dices si te sirve!! using UnityEngine; namespace LookAtCursorMovement.Player { public class PlayerMovement : MonoBehaviour { /* * El jugador debería estar compuesto de la siguiente manera: * * Player (con este script añadido) * |> Modelo 3D * |> Cámara */ public Camera playerCamera; // La cámara dentro del jugador. public GameObject playerModel; // El modelo 3D del jugador. public float movementMultiplier = 1f; // Variable para controlar la velocidad de movimiento. private Vector2 movementAxis; // Posición a la que el jugador mirará y se moverá en relación. private void Update() { /* * Esto controlará con el cursor la posición a la que queremos mirar en el mundo. */ var ray = playerCamera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out var hit) && hit.transform.CompareTag("Terrain")) movementAxis = new Vector2(hit.point.x, hit.point.z); /* * Esto hace que el modelo 3D mire hacia la posición del cursor. */ playerModel.transform.LookAt(new Vector3(movementAxis.x, playerModel.transform.position.y, movementAxis.y)); /* * Esto moverá a nuestro jugador pulsando las teclas WASD, relativas a la rotación del modelo 3D. */ var inputX = Input.GetAxis("Horizontal"); var inputY = Input.GetAxis("Vertical"); var movementDir = 15 * Time.deltaTime * movementMultiplier * (playerModel.transform.rotation * new Vector3(inputX, 0, inputY)); transform.Translate(movementDir, Space.Self); } } }
×
×
  • Create New...