Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo usar vb para lograr el efecto de disparo con honda en "Angry Birds"

Cómo usar vb para lograr el efecto de disparo con honda en "Angry Birds"

Primero, introduzcamos un nuevo concepto: LineRenderer. En Unity3D, LineRenderer se llama Linear Renderer. Con este componente podremos hacer algunas cosas más creativas, como dibujar líneas en el juego, crear efectos láser, efectos de arrastre de armas, etc. Así que hoy vamos a usar un LineRenderer para construir líneas a cada lado de la honda que sean elásticas y vuelvan a su forma original cuando termine la fuerza.

Cuando el usuario presiona el botón izquierdo del mouse y mueve el mouse, tanto la pelota como la cuerda se moverán en consecuencia. Cuando el usuario suelta el botón izquierdo del mouse, la pelota se lanzará con un cierto ángulo y fuerza. . Hoy nos centraremos en la implementación de cuerdas. Primero, creamos un GameObject vacío y establecemos las coordenadas en el origen, llamado RopeL. Luego, agregamos un componente Line Renderer a través de Componente->Efectos->Line Renderer.

usando UnityEngine;

usando System.Collections

bola de clase pública: MonoBehaviour {

// MousePosition

Vector3 MousePos privado

// LineRenderer izquierdo

LineRenderer privado LineL

// LineRenderer derecho

LineRenderer privado LineR;

void Start ()

{

// Obtener LineRenderer

LineL=GameObject.

LineL= GameObject.Find( "Shootor" ).transform.FindChild( "RopeL" ​​​​).

transform.GetComponent()

LineR=GameObject.Find( "; Shootor" ).transform.FindChild( "RopeR" ).

transform.GetComponent();

}

transform.GetComponent ()

)

Actualización nula ()

{

if (Input.GetMouseButton(0))

{

/Obtener la posición del mouse

MousePos=Camera.main.ScreenToViewportPoint( new Vector3(Input.mousePosition.x,Input.mousePosition.y, -2F) );

/ Establece la posición del Blob

transform.GetComponent(;

}

void Actualizar ()

p>

{

if (Input.GetMouseButton(0))

{

/Get la posición del mouse position=MousePos;

/Restablecer la posición del renderizador de líneas

LineL.SetPosition(0, new Vector3(MousePos.x, MousePos.y,MousePos.z- 0.5F));

LineR.SetPosition(0, nuevo Vector3(MousePos.x,MousePos.y,MousePos.z-0.5F));

if (Input .GetMouseButtonUp (0))

{

// Obtener la posición del mouse

MousePos=Camera.main.ScreenToViewportPoint( new Vector3 (Input.mousePosition.x, Input. mousePosition.y,-2F));

//Establece la posición de la bola

transformación.

position=MousePos;

//Restablecer la posición del renderizador de líneas

LineL.SetPosition(0, new Vector3(MousePos.x,MousePos.y,MousePos.z-0.5F ));

LineR.MousePos.z-0.5F));

//Calcular la dirección de la fuerza combinada de la bola

Vector3 Vec3L= new Vector3 (-2F-MousePos.x,1.8F-MousePos.y,0F-MousePos.z

Vector3 Vec3R= nuevo Vector3(2F-MousePos.x,1.8F-MousePos.y,0F-); MousePos.z);

Vector3 Dir=(Vec3L+Vec3R).AddForce(Dir*10F, ForceMode.Impulse

//Restaurar renderizador de líneas

< p); >LineL.SetPosition(0, nuevo Vector3(0F,1.8F,0F));

LineR (0F,1.8F,0F));

}

}

}