Mover un objeto con el clic de un botón en Unity3d en C #

Buen dia

Hoy hablaremos sobre el movimiento de un objeto presionando un botón en la pantalla en Unity3D. Este tema es muy simple, pero a menudo se usa en todo tipo de juegos.

Primero, creemos un proyecto 3D vacío. Abra Unity, presione el botón en la esquina superior derecha con la inscripción "Nuevo". En el campo "Nombre del proyecto" indique el nombre del proyecto. En la línea "Ubicación" indique la ubicación del proyecto en el disco. Debajo del campo "Ubicación", seleccione la casilla de verificación "3D" y haga clic en "Crear proyecto".

imagen

Luego crea un cubo que reemplazará la tierra por nosotros (GameObject-> 3D Object-> Cube). Luego lo hacemos más plano y estirado. Abra la ventana "Inspector", seleccione nuestro cubo, en el parámetro "Transformar", seleccione "Escala" x: 10, y: 0.2, z: 10. Deberíamos obtener este lienzo:



Ahora mueva la cámara a las coordenadas x: 0, y: 5, z: 0. Luego lo rotamos 90 grados a lo largo del eje x. Entonces necesitamos crear un objeto que vamos a mover. Cree una esfera (GameObject-> 3D Object-> Sphere), establezca el parámetro "Posición" en "Transformar" como x: 0, y: 1, z: 0. Después de eso, para ver mejor nuestra escena, busque un objeto con el nombre "Luz direccional" en la pestaña "Jerarquía" y configúrelo en el parámetro "Rotación" en "Transformar" como x: 180, y: -30, z: 0. Nuestro proyecto ahora debería verse así:



Ahora necesitamos un botón, haciendo clic en el cual determinaremos si debemos mover nuestro objeto. Primero, cree una pantalla en la que se ubicará nuestro botón (GameObject-> UI-> Canvas). El siguiente paso es crear un botón (GameObject-> UI-> Button). Luego necesitamos escribir un guión para mover nuestra esfera. En la ventana "Proyecto", seleccione "Crear", y allí seleccionamos C # Script. El siguiente es el código:

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Move : MonoBehaviour { // . public GameObject Sphere; //    . public int S; //       . public void OnButtonDown() { //     1  2. S = Random.Range(1, 2); //    S    x. Sphere.transform.Translate(S, 0, 0); } } 

Primero, cree una variable para que nuestro objeto se mueva. La segunda variable es la distancia sobre la cual moveremos el objeto. El método público "OnButtonDown" es responsable de moverse con el clic de un botón. Primero establecemos la variable S en 1 o 2, después de lo cual movemos el objeto a lo largo del eje X por la distancia S.

Luego seleccione nuestro botón, en el panel "Inspector" en la parte inferior, haga clic en el botón "Agregar componente", seleccione nuestro código en "Scripts". A continuación, en el componente "Botón", haga clic en "+" a continuación en el elemento "Al hacer clic ()". Hacemos clic en la ventana resultante en el parámetro "Al hacer clic ()" en el campo donde se encuentra "Ninguno (Objeto)". En él, seleccione nuestro botón. Así es como debería verse:



Luego, en nuestro parámetro "On Click ()", seleccionamos el bloque en el que se encuentra "Sin función", dentro de él seleccionamos el nombre de nuestro código, y en él seleccionamos el método "OnButtonDown ()". Ahora que el botón está configurado, vaya al código. La ventana "Inspector" debe mostrar un componente con el nombre de nuestro código. En el campo "Esfera", seleccione nuestra esfera. Esto es lo que debes obtener:



Luego, en la ventana "Juego", haga clic en "Maximizar en juego". Ahora haz clic en el botón de inicio del juego. Nuestro botón se muestra en la pantalla. Si hace clic en él, nuestra esfera se moverá a lo largo del eje X.

Antes de hacer clic:



Después de hacer clic:



Muchas gracias por leer esta publicación. Espero que hayas adquirido nuevos conocimientos.

Source: https://habr.com/ru/post/437898/


All Articles