Red de conocimiento informático - Problemas con los teléfonos móviles - Determinar si el mouse está en el área especificada de la pantalla en unity3d

Determinar si el mouse está en el área especificada de la pantalla en unity3d

Lo siguiente es propio de Unity y el código de arrastrar y soltar está incluido en el paquete de recursos del script. El objeto de arrastre debe tener un componente de cuerpo rígido adjunto.

DragRigidbody.js

var resorte = 50.0

var amortiguador = 5.0

var arrastre = 10.0;

var angularDrag = 5.0

var distancia = 0.2;

var adjuntoToCenterOfMass = false

Var privada junta de resorte: junta de resorte;

Función Update()

{

//Asegúrate de que el usuario presionó el mouse

if (! Input. GetMouseButtonDown (0))

Return;

var main camera = find camera();

//Necesitamos golpear un objeto

var hit: RaycastHit;

if(!Physics.Raycast(MainCamera.ScreenPointToRay(input.mouseposition),hit,100))

Return;

//Necesitamos encontrar un cuerpo rígido no cinemático

Si (! golpea . cuerpo rígido | | golpea . cuerpo rígido . es cinemático)

Regresa;

Si ( ! Junta de resorte )

{

var go = new GameObject("Rigidbody Drag");

var body: Rigidbody = go. AddComponent("cuerpo rígido") as cuerpo rígido;

springJoint = go. agregar componente(" articulación de resorte ");

body.isKinematic = true

}

posición de articulación de resorte = punto de impacto; >

if (attachToCenterOfMass)

{

var anclaje = conversión.

transformar dirección (golpe. cuerpo rígido. centro de masa) golpear. cuerpo rígido. transformar posición;

anclaje = unión de resorte. = ancla

}

Otro

{

unión de resorte .ancla = vector cero;

}

springJoint.spring = resorte

springJoint.damper = amortiguador;

springJoint.maxDistance = distancia

articulación de resorte. cuerpo = hit . cuerpo rígido;

StartCoroutine ("DragObject ", hit . distancia);

}

Función DragObject(distancia: flotar)

{

var old drag = junta de resorte . cuerpo conectado .

var oldAngularDrag = junta de resorte . articulación cuerpo conectado arrastre = arrastre;

articulación de resorte cuerpo conectado arrastre = arrastre angular;

var cámara principal = encontrar cámara();

while(input.GetMouseButton(0))

{

var ray = cámara principal. ScreenPointToRay(entrada . posición del mouse);

transformación de articulación de resorte = rayo. GetPoint(distancia);

Salida;

}

if (springJoint.connectedBody)

{

junta de resorte cuerpo conectado. drag = arrastre antiguo;

cuerpo conectado de resorte = oldAngularDrag;

cuerpo conectado de resorte = nulo. }

}

Función FindCamera()

{

IF (cámara)

Devuelve la cámara;

Otros

Volver a Camera.main

}

"Programming Memoirs" tiene una historia de ocho años y es una red en línea propiedad de por las instituciones de formación del equipo técnico. Actualmente se han matriculado trece asignaturas que involucran desarrollo de Internet, desarrollo de software y desarrollo de juegos (desarrollo de realidad virtual).

Now Programming Memoir Unity3D es el único videotutorial a gran escala serializado en chino en China. La explicación de base cero es fácil de entender y apunta al combate práctico, y ha sido bien recibida por muchos internautas.