Componente que aplica movimiento errático con rotación suave a un objeto. Cambia de dirección al azar cada pocos segundos o al llegar a los márgenes de pantalla. Limita el movimiento dentro de una región del viewport, permitiendo que el objeto salga solo por abajo. Más...
Diagrama de herencia de ErraticMovement
Diagrama de colaboración de ErraticMovement:Atributos públicos | |
| float | speed = 2f |
| Velocidad de desplazamiento del objeto, medida en unidades de Unity por segundo. | |
| float | changeInterval = 3f |
| Intervalo en segundos tras el cual el objeto elige una nueva dirección aleatoria. | |
| float | minX = 0.04f |
| Límite izquierdo en coordenadas normalizadas de pantalla (0 = borde izquierdo, 1 = borde derecho). | |
| float | maxX = 0.96f |
| Límite derecho en coordenadas normalizadas de pantalla. | |
| float | maxY = 0.94f |
| Límite superior en coordenadas normalizadas (1 = parte superior de la pantalla). Si se supera, se fuerza un cambio de dirección. | |
| float | rotationSpeed = 500f |
| Velocidad máxima a la que puede girar el objeto para alinearse con su nueva dirección, expresada en grados por segundo. | |
Métodos privados | |
| void | Start () |
| Método de inicialización de Unity. Se ejecuta al comenzar la escena o activar el objeto. | |
| void | Update () |
| Método que se ejecuta en cada frame. Controla el movimiento, cambio de dirección, detección de colisiones con los bordes y rotación hacia la dirección actual. | |
| void | PickNewDirection () |
| Selecciona una nueva dirección aleatoria en el plano XY. El ángulo se elige en un rango completo de 360 grados. | |
| void | AlignRotation (Vector2 dir) |
Rota el objeto suavemente para que su eje "up" apunte en la dirección indicada. Usa Quaternion.RotateTowards para interpolar la rotación con una velocidad máxima. | |
Atributos privados | |
| Vector2 | moveDirection |
| Dirección actual de movimiento del objeto, como vector normalizado. | |
| float | timer |
| Cronómetro interno que controla cuándo cambiar la dirección de movimiento. | |
| Transform | myTransform |
| Referencia local al Transform del objeto (para optimizar acceso repetido). | |
| Camera | myCamera |
| Referencia a la cámara principal, usada para convertir entre mundo y viewport. | |
Componente que aplica movimiento errático con rotación suave a un objeto. Cambia de dirección al azar cada pocos segundos o al llegar a los márgenes de pantalla. Limita el movimiento dentro de una región del viewport, permitiendo que el objeto salga solo por abajo.
Definición en la línea 16 del archivo ErraticMovement.cs.
|
inlineprivate |
Rota el objeto suavemente para que su eje "up" apunte en la dirección indicada. Usa Quaternion.RotateTowards para interpolar la rotación con una velocidad máxima.
| dir | Dirección hacia la que se alineará el objeto visualmente. |
Definición en la línea 153 del archivo ErraticMovement.cs.
Hace referencia a myTransform y rotationSpeed.
Referenciado por Start() y Update().
Gráfico de llamadas a esta función:
|
inlineprivate |
Selecciona una nueva dirección aleatoria en el plano XY. El ángulo se elige en un rango completo de 360 grados.
Definición en la línea 142 del archivo ErraticMovement.cs.
Hace referencia a moveDirection.
Referenciado por Start() y Update().
Gráfico de llamadas a esta función:
|
inlineprivate |
Método de inicialización de Unity. Se ejecuta al comenzar la escena o activar el objeto.
Definición en la línea 92 del archivo ErraticMovement.cs.
Hace referencia a AlignRotation(), moveDirection, myCamera, myTransform, PickNewDirection() y timer.
Gráfico de llamadas de esta función:
|
inlineprivate |
Método que se ejecuta en cada frame. Controla el movimiento, cambio de dirección, detección de colisiones con los bordes y rotación hacia la dirección actual.
Definición en la línea 105 del archivo ErraticMovement.cs.
Hace referencia a AlignRotation(), changeInterval, maxX, maxY, minX, moveDirection, myCamera, myTransform, PickNewDirection(), speed y timer.
Gráfico de llamadas de esta función:| float ErraticMovement.changeInterval = 3f |
Intervalo en segundos tras el cual el objeto elige una nueva dirección aleatoria.
Definición en la línea 31 del archivo ErraticMovement.cs.
Referenciado por Update().
| float ErraticMovement.maxX = 0.96f |
Límite derecho en coordenadas normalizadas de pantalla.
Definición en la línea 47 del archivo ErraticMovement.cs.
Referenciado por Update().
| float ErraticMovement.maxY = 0.94f |
Límite superior en coordenadas normalizadas (1 = parte superior de la pantalla). Si se supera, se fuerza un cambio de dirección.
Definición en la línea 54 del archivo ErraticMovement.cs.
Referenciado por Update().
| float ErraticMovement.minX = 0.04f |
Límite izquierdo en coordenadas normalizadas de pantalla (0 = borde izquierdo, 1 = borde derecho).
Definición en la línea 41 del archivo ErraticMovement.cs.
Referenciado por Update().
|
private |
Dirección actual de movimiento del objeto, como vector normalizado.
Definición en la línea 72 del archivo ErraticMovement.cs.
Referenciado por PickNewDirection(), Start() y Update().
|
private |
Referencia a la cámara principal, usada para convertir entre mundo y viewport.
Definición en la línea 87 del archivo ErraticMovement.cs.
|
private |
Referencia local al Transform del objeto (para optimizar acceso repetido).
Definición en la línea 82 del archivo ErraticMovement.cs.
Referenciado por AlignRotation(), Start() y Update().
| float ErraticMovement.rotationSpeed = 500f |
Velocidad máxima a la que puede girar el objeto para alinearse con su nueva dirección, expresada en grados por segundo.
Definición en la línea 65 del archivo ErraticMovement.cs.
Referenciado por AlignRotation().
| float ErraticMovement.speed = 2f |
Velocidad de desplazamiento del objeto, medida en unidades de Unity por segundo.
Definición en la línea 25 del archivo ErraticMovement.cs.
Referenciado por Update().
|
private |
Cronómetro interno que controla cuándo cambiar la dirección de movimiento.
Definición en la línea 77 del archivo ErraticMovement.cs.