Cosmic Strike
 
Cargando...
Buscando...
Nada coincide
Referencia de la clase PlayerController

Componente que permite mover un jugador en 2D a través de entrada de usuario (WASD o flechas), con restricción de movimiento dentro del viewport y opción de rotación visual (alabeo). Más...

+ Diagrama de herencia de PlayerController
+ Diagrama de colaboración de PlayerController:

Atributos públicos

float speed = 5f
 Velocidad de desplazamiento del jugador en unidades por segundo.
 
float maxRollAngle = 20f
 Ángulo máximo de inclinación visual (roll) en grados. Representa cuánto puede inclinarse el objeto lateralmente.
 
float rollSpeed = 5f
 Velocidad a la que se interpola la rotación hacia el ángulo deseado.
 

Métodos privados

void Awake ()
 Inicializa las referencias de transform y cámara al momento de despertar el objeto.
 
void Start ()
 Obtiene la referencia al Rigidbody2D al comenzar el juego.
 
void Update ()
 Lógica principal de movimiento. Se ejecuta en cada frame. Calcula dirección, aplica desplazamiento y mantiene al jugador dentro de pantalla.
 
void ClampFinalPosition (Vector2 currentDir)
 Traslada al jugador en la dirección indicada y lo mantiene dentro de los márgenes visibles del viewport.
 
Vector2 GetDirection ()
 Lee la entrada del jugador (teclas WASD o flechas) y devuelve un vector normalizado de dirección.
 
void HandleRoll (float horizontalInput)
 Aplica una rotación visual suave (alabeo) en el eje Z según la dirección horizontal del jugador. Mejora la sensación de movimiento fluido en naves o vehículos.
 

Atributos privados

Rigidbody2D rb
 Referencia al Rigidbody2D del jugador (necesario para la física, aunque aquí no se usa movimiento por fuerzas).
 
Transform myTransform
 Transform local del jugador, cacheado para optimizar acceso.
 
Camera myCamera
 Referencia a la cámara principal, usada para limitar el movimiento del jugador en pantalla.
 
float targetRoll = 0f
 Ángulo de rotación objetivo en el eje Z para el alabeo.
 

Descripción detallada

Componente que permite mover un jugador en 2D a través de entrada de usuario (WASD o flechas), con restricción de movimiento dentro del viewport y opción de rotación visual (alabeo).

Definición en la línea 16 del archivo PlayerController.cs.

Documentación de funciones miembro

◆ Awake()

void PlayerController.Awake ( )
inlineprivate

Inicializa las referencias de transform y cámara al momento de despertar el objeto.

Definición en la línea 68 del archivo PlayerController.cs.

69 {
70 myTransform = transform;
71 myCamera = Camera.main;
72 }
Camera myCamera
Referencia a la cámara principal, usada para limitar el movimiento del jugador en pantalla.
Transform myTransform
Transform local del jugador, cacheado para optimizar acceso.

Hace referencia a myCamera y myTransform.

◆ ClampFinalPosition()

void PlayerController.ClampFinalPosition ( Vector2 currentDir)
inlineprivate

Traslada al jugador en la dirección indicada y lo mantiene dentro de los márgenes visibles del viewport.

Parámetros
currentDirDirección unitaria de movimiento calculada desde la entrada.

Definición en la línea 103 del archivo PlayerController.cs.

104 {
105 myTransform.Translate(currentDir * (speed * Time.deltaTime), Space.World);
106
107 Vector3 vp = myCamera.WorldToViewportPoint(myTransform.position);
108 vp.x = Mathf.Clamp(vp.x, 0.04f, 0.96f);
109 vp.y = Mathf.Clamp(vp.y, 0.08f, 0.94f);
110
111 myTransform.position = myCamera.ViewportToWorldPoint(vp);
112 }
float speed
Velocidad de desplazamiento del jugador en unidades por segundo.

Hace referencia a myCamera, myTransform y speed.

Referenciado por Update().

+ Gráfico de llamadas a esta función:

◆ GetDirection()

Vector2 PlayerController.GetDirection ( )
inlineprivate

Lee la entrada del jugador (teclas WASD o flechas) y devuelve un vector normalizado de dirección.

Devuelve
Vector de dirección unitaria basado en la entrada horizontal y vertical.

Definición en la línea 118 del archivo PlayerController.cs.

119 {
120 float h = Input.GetAxis("Horizontal");
121 float v = Input.GetAxis("Vertical");
122 return new Vector2(h, v).normalized;
123 }

Referenciado por Update().

+ Gráfico de llamadas a esta función:

◆ HandleRoll()

void PlayerController.HandleRoll ( float horizontalInput)
inlineprivate

Aplica una rotación visual suave (alabeo) en el eje Z según la dirección horizontal del jugador. Mejora la sensación de movimiento fluido en naves o vehículos.

Parámetros
horizontalInputValor horizontal de entrada entre -1 y 1.

Definición en la línea 130 del archivo PlayerController.cs.

131 {
132 // Invertimos signo si quieres que alabeo a la izquierda incline a la izquierda
133 targetRoll = -horizontalInput * maxRollAngle;
134
135 // Interpolamos la rotación actual hacia la rotación objetivo
136 Quaternion currentRot = myTransform.rotation;
137 Quaternion desiredRot = Quaternion.Euler(0f, targetRoll, 0f);
138
139 myTransform.rotation = Quaternion.RotateTowards(
140 currentRot,
141 desiredRot,
142 rollSpeed * Time.deltaTime * maxRollAngle
143 );
144 }
float targetRoll
Ángulo de rotación objetivo en el eje Z para el alabeo.
float rollSpeed
Velocidad a la que se interpola la rotación hacia el ángulo deseado.
float maxRollAngle
Ángulo máximo de inclinación visual (roll) en grados. Representa cuánto puede inclinarse el objeto la...

Hace referencia a maxRollAngle, myTransform, rollSpeed y targetRoll.

◆ Start()

void PlayerController.Start ( )
inlineprivate

Obtiene la referencia al Rigidbody2D al comenzar el juego.

Definición en la línea 77 del archivo PlayerController.cs.

78 {
79 rb = GetComponent<Rigidbody2D>();
80 }
Rigidbody2D rb
Referencia al Rigidbody2D del jugador (necesario para la física, aunque aquí no se usa movimiento por...

Hace referencia a rb.

◆ Update()

void PlayerController.Update ( )
inlineprivate

Lógica principal de movimiento. Se ejecuta en cada frame. Calcula dirección, aplica desplazamiento y mantiene al jugador dentro de pantalla.

Definición en la línea 86 del archivo PlayerController.cs.

87 {
88 // 1) Calcula dirección de movimiento unitaria
89 Vector2 currentDir = GetDirection();
90
91 // 2) Mueve y clampa posición dentro de viewport
92 ClampFinalPosition(currentDir);
93
94 // 3) Calcula y aplica alabeo según la componente X
95 // Desactivado actualmente por decisión de diseño
96 // HandleRoll(currentDir.x);
97 }
void ClampFinalPosition(Vector2 currentDir)
Traslada al jugador en la dirección indicada y lo mantiene dentro de los márgenes visibles del viewpo...
Vector2 GetDirection()
Lee la entrada del jugador (teclas WASD o flechas) y devuelve un vector normalizado de dirección.

Hace referencia a ClampFinalPosition() y GetDirection().

+ Gráfico de llamadas de esta función:

Documentación de datos miembro

◆ maxRollAngle

float PlayerController.maxRollAngle = 20f

Ángulo máximo de inclinación visual (roll) en grados. Representa cuánto puede inclinarse el objeto lateralmente.

Definición en la línea 35 del archivo PlayerController.cs.

Referenciado por HandleRoll().

◆ myCamera

Camera PlayerController.myCamera
private

Referencia a la cámara principal, usada para limitar el movimiento del jugador en pantalla.

Definición en la línea 58 del archivo PlayerController.cs.

Referenciado por Awake() y ClampFinalPosition().

◆ myTransform

Transform PlayerController.myTransform
private

Transform local del jugador, cacheado para optimizar acceso.

Definición en la línea 53 del archivo PlayerController.cs.

Referenciado por Awake(), ClampFinalPosition() y HandleRoll().

◆ rb

Rigidbody2D PlayerController.rb
private

Referencia al Rigidbody2D del jugador (necesario para la física, aunque aquí no se usa movimiento por fuerzas).

Definición en la línea 48 del archivo PlayerController.cs.

Referenciado por Start().

◆ rollSpeed

float PlayerController.rollSpeed = 5f

Velocidad a la que se interpola la rotación hacia el ángulo deseado.

Definición en la línea 41 del archivo PlayerController.cs.

Referenciado por HandleRoll().

◆ speed

float PlayerController.speed = 5f

Velocidad de desplazamiento del jugador en unidades por segundo.

Definición en la línea 25 del archivo PlayerController.cs.

Referenciado por ClampFinalPosition().

◆ targetRoll

float PlayerController.targetRoll = 0f
private

Ángulo de rotación objetivo en el eje Z para el alabeo.

Definición en la línea 63 del archivo PlayerController.cs.

Referenciado por HandleRoll().


La documentación de esta clase está generada del siguiente archivo: