Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo implementar Angry Birds Slingshot en el desarrollo de juegos Unity3D

Cómo implementar Angry Birds Slingshot en el desarrollo de juegos Unity3D

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, la pelota y la cuerda se moverán en consecuencia. Cuando se 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. A continuación, agregamos un componente Line Renderer a través de Componente->Efectos->Line Renderer.

usando UnityEngine

usando System.Collections

bola de clase pública: MonoBehaviour {

//Posiciones del mouse

Private Vector3 MousePos

// 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();

}

}

void Update ()

{

if (Input.GetMouseButton(0))

{

/ /Obtener la posición del mouse

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

// Establecer la posición del mouse blob

transform.position=MousePos;

//Restablece 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));

}

si (MousePos.x,MousePos.y,MousePos.z-0.5F

si (MousePos.x, MousePos.y,MousePos.z-); 0.5F ), restablece la posición del renderizador de líneas.

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

transform.position=MousePos;

p>

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

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

LineR.MousePos.z-0.5F));

//Calcula la dirección de la fuerza resultante de la bola

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

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

Vector3 Dir=(Vec3L+Vec3R).

//Obtener la estructura del cuerpo rígido

transform.GetComponent().useGravity= true;

transform.GetComponent().addForce(Dir*10F-MousePos.y,0F-MousePos.z

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

//Restaurar el renderizador de líneas

LineL.SetPosition(0, new Vector3(0F,1.8F) , 0F));

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

}

Compatible con USB 3.0 y PCI Express Gen 3.0.

}

}