Puede acceder al curso completo aquí: Mobile desarrollo del juego para principiantes

Touch entradas

Crear un nuevo guión C # llamado ColorChanger y adjuntarlo a la cámara principal. Abrirlo en Visual Studio.

En el Actualizar función, vamos a comprobar si hay entradas táctiles. Si el jugador ha tocado la pantalla, dispara un raycast lo que estamos tocando. Si golpeara algo, cambiar el color a un color aleatorio.
vacío Update () {if (Input.touchCount> 0 && Input.touches [0] == .phase TouchPhase.Began) {Ray ray = Camera.main.ScreenPointToRay (Input.touches [0] .position); RaycastHit golpeado; si (Physics.Raycast (rayos, fuera golpe)) {if (hit.collider! = null) {Color Newcolor = new Color (Random.Range (0.0f, 1.0f), Random.Range (0.0f, 1.0f) , Random.Range (0.0f, 1.0f), 1.0); hit.collider.GetComponent () material.color = Newcolor.; }}}} 1234567891011121314151617voidUpdate () {if (Input.touchCount> 0 && Input.touches [0] .phase == TouchPhase.Began) {Ray ray = Camera.main.ScreenPointToRay (Input.touches [0] .position); RaycastHit golpe, y si (Physics.Raycast (rayos, outhit)) {if (! hit.collider = null) {color Newcolor = Newcolor (Random.Range (0.0f, 1.0f), Random.Range (0.0f, 1.0f) , Random.Range (0.0f, 1.0f), 1.0); hit.collider.GetComponent () = material.color Newcolor;.}}}}

Si desea probarlo en el editor, podemos tener una versión para el ratón.
#if UNITY_EDITORif (Input.GetMouseButtonDown (0)) {Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); RaycastHit golpeado; si (Physics.Raycast (rayos, fuera golpe)) {if (hit.collider! = null) {Color Newcolor = new Color (Random.Range (0.0f, 1.0f), Random.Range (0.0f, 1.0f) , Random.Range (0.0f, 1.0f), 1.0f); hit.collider.GetComponent () material.color = Newcolor.; }}} # # Endif123456789101112131415161718 si UNITY_EDITORif (Input.GetMouseButtonDown (0)) {Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); RaycastHit golpean; si (Physics.Raycast (rayos, outhit)) {if (golpe. ! colisionador = null) {color Newcolor = Newcolor (Random.Range (0.0f, 1.0f), Random.Range (0.0f, 1.0f), Random.Range (0.0f, 1.0f), 1.0f); hit. collider.GetComponent () = material.color Newcolor;.}}} #endif

Si volvemos al editor y pulse el juego, debemos ser capaces de hacer clic en el balón o la tierra y cambiar el color.

Transcripción

Hola a todos, en esta lección, vamos a ser su puesta en marcha así que en realidad se puede tocar cosas en la pantalla. Vamos a estar detectando entradas táctiles, y luego vamos a estar filmando un elenco de rayos hacia lo que nos tocó y la interacción con ese objeto, de alguna manera. Lo que vamos a estar haciendo con la interacción que realmente está cambiando el color de lo que tocamos a un nuevo color al azar.

Así que lo que vamos a hacer ahora es ir a la carpeta nuestros scripts, voy clic aquí, voy a crear un nuevo guión C # llamado ColorChanger. Y lo que voy a hacer es también acaba de anéxalo a nuestra cámara principal aquí. Y entonces podemos abrir el interior guión de Visual Studio.

De acuerdo, así que para empezar, vamos a sólo tienen en realidad una función, y que una función va a ser la función de actualización, que es llamada cada fotograma del juego. Y esto es en realidad la única función que vamos a necesitar y usar en este guión. Por lo tanto, dentro de la función de actualización, ¿qué es lo que queremos hacer?

Así que lo primero que voy a hacer en la función de actualización está cheque que están tocando la pantalla? Así que podemos ir si de entrada para acceder a la clase de entrada real de la Unidad – que tiene muchas cosas tales como entradas de teclado, ratón, insumos y, por supuesto, las entradas táctiles .

Por lo tanto, si va a ir .touchCount entrada si esta touchCount es mayor que cero, por lo que si hay más de cero toques en la pantalla y los input.touches, ahora tocar input.touches es una matriz de todos los diferentes toques que Actualmente en la pantalla, por lo que para acceder a la primera o si hay sólo un toque en la pantalla, que sólo puede acceder al elemento cero, el primer elemento de la matriz. Si eso touch.phase, ahora hay también una fase de un toque. Y hay varias fases diferentes, tales como comenzó, movido, estacionaria, dado a conocer.

Así que si esta fase tacto es igual a los iguales, TouchPhase.Began, por lo que, si hay más de un toque en la pantalla, y que toque acaba de empezar, si este es el marco que este toque acaba de tocar la pantalla, a continuación, lo que vamos a hacer es crear un elenco de rayos desde donde hemos tocado en la pantalla en primer lugar. Así se creará un nuevo rayo aquí, y que va a ser igual a nuestra Camera.main.ScreenPointToRay. Y el punto en la pantalla que queremos crear un elenco de rayos va a ser las Input.touches, la primera .position táctil. Así que esto va a crear un elenco ray en la pantalla desde la que hemos tocado, y que va a estar disparando a todo lo que está señalando.

Dado que vamos a estar golpeando un objeto y lo que necesitamos saber la información sobre ese objeto, sino que también va a crear un objeto RaycastHit aquí, que va a almacenar toda la información de lo golpeamos. Y por último aquí podemos disparar el elenco de rayos yendo si Physics.Raycast que puede entrar en nuestro rayo. Y luego queremos enviar esto al éxito de casi todo lo golpeamos, queremos enviarlo al éxito.

Y así, si disparamos que Raycast, lo que queremos compruebe primero de todo es, nos golpeamos algo? Por lo tanto, si hit.collider no es igual a cero, si nos golpeó algo, entonces lo que queremos hacer es cambiar de color con malla para que este objeto renderizado. Así que voy a crear una variable de color aquí, sólo voy a llamar a este nuestro Newcolor. Y esto es sólo va a ser igual a un nuevo color y sólo tendremos que darle una random rojo, verde y azul que.

Así que sólo lo daré un Random.Range entre 0,0 y 1,0 ya que esta clase de color aquí, que lleva en su RGB y A no valora como cero a 255, ya que sería en el editor, en realidad es entre cero y uno. Así que vamos a hacer eso. A continuación, en realidad, sólo voy a copiar este Random.Range aquí y pega este para los valores de verde y azul. Y para el alfa, sólo voy a establecer esto a uno y luego voy a flexores.

Así que ahora tenemos un nuevo color al azar. Que realmente puede haber nada en el círculo cromático y lo que queremos hacer ahora es establecer esto en el objeto que golpeamos, que desea poner a su procesador de malla. Y para ello, sólo podemos ir hit.collider.GetComponent, que quiera conseguir el componente MeshRenderer, que es más o menos el componente que hace que la malla, se aplica el material y así sucesivamente. Y con esto, sólo queremos acceder a la variable de material, y el acceso al color de ese material y cambiar esto en nuestro nuevo color. Tan grande, eso todo el trabajo.

Pero ya que estamos en el editor y no realmente en un dispositivo móvil, no vamos a ser realmente capaces de probar esto. Así que lo que podemos hacer es en realidad también aquí abajo, crear una versión diferente que funcione de verdad en el escritorio de trabajo en el interior del editor de Unity. Y para ello, sólo vamos a ser la comprobación de las entradas del ratón.

Así que aquí sólo tendremos que ir si Input.GetMouseButtonDown. Si el botón del ratón era cero, que es el botón izquierdo del ratón, por lo que en el marco que nos empuje hacia abajo nuestro botón izquierdo del ratón. Estamos más o menos queremos hacer exactamente lo mismo que hemos hecho hasta aquí, así que voy a copiar esto, lo pego aquí y sólo quiero cambiar Input.touches ser Input.mousePosition todos como tal y alguna otra cosa que puede hacer en la Unidad es hacerlo de modo que sólo cierto código es en realidad corrió o en realidad es en realidad compilado dependiendo de la plataforma que se está jugando en.

Entonces, ¿qué podemos hacer en realidad es justo por encima de esta sentencia if aquí para las entradas de ratón, podemos ir hashtag si y luego un espacio, podemos ir UNITY_EDITOR y luego después de esta sentencia if aquí sólo podemos ir #endif. Ahora lo que esto hace es básicamente lo hace así que todo entre este hashtag, y si esta #endif Sólo se incluirá por lo que el juego sólo reconocerá esto si estamos en la plataforma del editor de Unity. Así que una vez que construimos esta en nuestro dispositivo móvil, el código aquí fueron ni siquiera se veía, ni siquiera existirá realmente en el juego final. No va a ser reconocido. Y esto es una gran manera si tiene algo como esto porque los insumos ratón también se pueden detectar en las entradas táctiles. Así que esto sería muy conflictiva si esto estaba incluido dentro de la estructura móvil.

De acuerdo, por lo que el guión listo para funcionar, que se puede volver al editor, que espera para compilar, espera para nuestra última ir, podemos pulsar el juego. Y cuando seleccionamos un objeto, debemos ser capaces de cambiar su color. Así que voy a hacer clic en la pelota aquí. Y como se puede ver que ha cambiado. Podemos hacer clic en esto aquí, tenemos que hacer clic en un montón de cosas diferentes. Y el color cambiará. Así puede presionar juego.

Y en realidad lo que voy a hacer es mover la cámara un poco más cerca, ya que es un poco lejos en este momento. Así que voy a moverlo hacia abajo como tal. Y sí, hay que ir.

Así que en la siguiente lección, que van a estar probando esto en nuestro dispositivo. Vamos a estar en primer lugar a la construcción de este un dispositivo Android. Y luego la lección después de eso será para todos los usuarios a los que iOS. Vamos a ir sobre cómo construir esta a iOS, cómo configurarlo a través de Xcode y tenerlo en su dispositivo. Así que a todos nos vemos en la próxima lección.

interesado en continuar? Mira el juego móvil Desarrollo completo para Prácticas de iniciación, que es parte de nuestra Unidad de Desarrollo de Juego Mini-Grado.

Mensajes relacionados

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *