Cosmic Strike
 
Cargando...
Buscando...
Nada coincide
SinusoidalMovement.cs
Ir a la documentación de este archivo.
1
8
9using UnityEngine;
10
15public class SinusoidalMovementAlt : MonoBehaviour
16{
17 // ========== PARÁMETROS EXPUESTOS EN INSPECTOR ==========
18
22 [Header("Movimiento Sinusoidal (Alternativa)")]
23 [Tooltip("Amplitud máxima de la oscilación horizontal")]
24 public float amplitude = 1f;
25
30 [Tooltip("Frecuencia de la oscilación (veces por segundo)")]
31 public float frequency = 1f;
32
36 [Tooltip("Velocidad de descenso en unidades por segundo")]
37 public float speed = 2f;
38
39 // ========== VARIABLES INTERNAS ==========
40
44 private Vector3 startPos;
45
50 private float angle;
51
52 // ========== MÉTODOS UNITY ==========
53
58 void Start()
59 {
60 // Guardamos la posición inicial (para centrar la oscilación en X)
61 startPos = transform.position;
62 angle = 0f;
63 }
64
68 void Update()
69 {
70 // 1) Descenso vertical con Translate y deltaTime
71 transform.Translate(Vector3.down * speed * Time.deltaTime, Space.World);
72
73 // 2) Actualizamos la fase de la onda (radianes) usando deltaTime
74 // frequency en vueltas/segundo, así que convertimos a rad/s
75 angle += frequency * 2f * Mathf.PI * Time.deltaTime;
76
77 // 3) Calculamos la nueva X en función de la senoide
78 float offsetX = amplitude * Mathf.Sin(angle);
79 Vector3 pos = transform.position;
80 pos.x = startPos.x + offsetX;
81
82 // 4) Aplicamos solo la componente X sobre la posición actual
83 transform.position = pos;
84 }
85}
Movimiento que combina un desplazamiento vertical descendente constante con una oscilación horizontal...
float speed
Velocidad de descenso vertical constante, en unidades por segundo.
void Start()
Inicializa la posición de referencia y el ángulo. Se ejecuta una vez al activar el objeto.
float amplitude
Amplitud máxima de la oscilación horizontal (alcance lateral desde el punto central).
float angle
Ángulo o fase actual de la onda sinusoidal, en radianes. Se incrementa cada frame según la frecuencia...
float frequency
Frecuencia de oscilación en ciclos por segundo (Hz). Controla cuántas veces por segundo se completa u...
void Update()
Se ejecuta cada frame. Aplica el movimiento descendente y actualiza la posición horizontal con oscila...
Vector3 startPos
Posición inicial del objeto, usada como centro de la oscilación en X.