Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-plugin-bluehost domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home1/spotsail/public_html/martra/wp-includes/functions.php on line 6114

Warning: Cannot modify header information - headers already sent by (output started at /home1/spotsail/public_html/martra/wp-includes/functions.php:6114) in /home1/spotsail/public_html/martra/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /home1/spotsail/public_html/martra/wp-includes/functions.php:6114) in /home1/spotsail/public_html/martra/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /home1/spotsail/public_html/martra/wp-includes/functions.php:6114) in /home1/spotsail/public_html/martra/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /home1/spotsail/public_html/martra/wp-includes/functions.php:6114) in /home1/spotsail/public_html/martra/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /home1/spotsail/public_html/martra/wp-includes/functions.php:6114) in /home1/spotsail/public_html/martra/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /home1/spotsail/public_html/martra/wp-includes/functions.php:6114) in /home1/spotsail/public_html/martra/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /home1/spotsail/public_html/martra/wp-includes/functions.php:6114) in /home1/spotsail/public_html/martra/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /home1/spotsail/public_html/martra/wp-includes/functions.php:6114) in /home1/spotsail/public_html/martra/wp-includes/rest-api/class-wp-rest-server.php on line 1893
{"id":941,"date":"2017-08-13T20:18:05","date_gmt":"2017-08-13T20:18:05","guid":{"rendered":"http:\/\/martra.uadla.com\/?p=941"},"modified":"2020-11-24T15:43:54","modified_gmt":"2020-11-24T15:43:54","slug":"premios-y-enemigos-en-unity","status":"publish","type":"post","link":"https:\/\/martra.uadla.com\/premios-y-enemigos-en-unity\/","title":{"rendered":"Premios y enemigos en Unity."},"content":{"rendered":"\n

Un juego sin premios no es nada, pero un juego sin enemigos… un ARCADE sin nadie que te persiga o nadie a quien enfrentarte no tiene sentido! Vamos a incorporar a nuestro juego premios que tendremos que ir recolectando y enemigos que nos perseguir\u00e1n para acabar con nosotros<\/strong> a los que podremos aniquilar, con un poco, o mucha pericia.<\/p>\n\n\n\n

Este post forma parte del tutorial de desarrollo de juegos en Unity<\/a>. En los post anteriores hemos creado el escenario, el protagonista y puesto la c\u00e1mara. Si quiere empezar desde aqu\u00ed puedes bajarte el fichero con el proyecto Unity con todas las modificaciones que hemos hecho por ahora: megafastball-camara<\/a>.<\/p><\/blockquote>\n\n\n\n

Los premios<\/h2>\n\n\n\n

Vamos a utilizar un modelo de los Asset Standard<\/em>. Se llama PickupPrototype01x01x01<\/em>, lo encontramos en Standard Assets->Prototyping->Models<\/em>.<\/p>\n\n\n\n

\"\" <\/picture><\/a>
Escogiendo el objeto pickup.<\/figcaption><\/figure><\/div>\n\n\n\n

Cogemos el Model<\/em> y lo arrastramos a la secci\u00f3n Hierarchy,<\/strong> as\u00ed creamos un objeto nuevo en el juego. Nos aparecera en el centro de nuestro escenario. Podemos desplazarlo si queremos, lo que si que tendr\u00edamos que hacer es modificar su eje Y<\/em> para que no quede, una parte de el, dentro del suelo<\/strong>.<\/p>\n\n\n\n

\"Se <\/picture><\/a>
Esta es la pinta que tendr\u00e1n los premios en nuestro juego.<\/figcaption><\/figure><\/div>\n\n\n\n

Como pod\u00e9is ver no es que sea el premio m\u00e1s original del mundo, pero es que estamos usando los Assets standard de Unity, as\u00ed que nos vamos a conformar con tener que recoger monedas con nuestra bola :-). Una vez copiado le cambiamos el nombre a Moneda, y vamos a ver sus propiedades en el Inspector.<\/p>\n\n\n\n

\"Las <\/picture><\/a>
Propiedades de nuestra moneda.<\/figcaption><\/figure><\/div>\n\n\n\n

No se en que pa\u00eds disponen de monedas fucsia, pero yo no he visto ninguna, as\u00ed que una de las cosas que vamos a hacer cambiarle el material. Mi moneda esta usando el PinkSmooth, lo duplicamos, creando un nuevo material y lo llamamos MaterialMoneda, yo lo arrastro a una carpeta diferente, para no mezclar los assets standard con los que creamos nosotros. Lo dejar\u00e9 en la carpeta MisPrefabs.<\/p>\n\n\n\n

Lo primero que vamos a hacer es cambiar el material. En su Albedo vamos a poner algo mas apropiado a una moneda, en textures tenemos una que se llama SwatchYellowAlbedo, la arrastramos, hacia el cuadradillo Albero de nuestro MaterialMoneda.<\/p>\n\n\n\n

\"Modificamos <\/picture><\/a>
Modificaciones en nuestro Material Moneda.<\/figcaption><\/figure><\/div>\n\n\n\n

Aparte de cambiar el Albedo tambi\u00e9n he jugado un poco con los colores, para rebajar el nivel de brillo de la moneda, que pod\u00edamos dejar ciego a alg\u00fan jugador.
Si le damos al Play, veremos como nuestra Bola no puede recoger nuestra moneda, pasa a trav\u00e9s de ella. Este no es el comportamiento buscado, tendremos que solucionarlo.<\/p>\n\n\n\n

\nhttps:\/\/martra.uadla.com\/wp-content\/uploads\/2017\/08\/megafast-coinII.mp4<\/a><\/video><\/div>\n\n\n\n

Despu\u00e9s de ver el v\u00eddeo, hay otro problema, la moneda es demasiado grande, bueno, a mi me lo parece. As\u00ed que vamos a ajustarla, ya tendr\u00edamos que saber como hacerlo. Tenemos que modificar los valores de Scale, dentro del apartado transform en la secci\u00f3n Inspector de nuestra moneda. Yo lo he dejado a 0.5.<\/p>\n\n\n\n

Haciendo que nuestra moneda se pueda recoger.<\/h3>\n\n\n\n

Para que podamos coger, o interactuar un objeto, este tiene que tener un Collider<\/em><\/strong>, y justamente es lo que le falta a la moneda. Vamos a incorporar uno:
Con la moneda seleccionada pulsamos el bot\u00f3n Add Component y seleccionamos: Physics->Collider->Sphere Collider<\/em>.<\/p>\n\n\n\n

A\u00f1adimos un rigid body. Add component->Physics->Rigid Body<\/em>. Desmarcamos la casilla Use Gravity<\/em> y marcamos la Is Kinematic<\/em>.<\/p>\n\n\n\n

Incorporamos, a nuestra moneda, el script para recogida de tesoros: Recordar que se hace desde el bot\u00f3n Add Component<\/em> del Inspector de la moneda.<\/p>\n\n\n\n

[code language=”csharp”]
using UnityEngine;
using System.Collections;<\/p>\n\n\n\n

public class Premio : MonoBehaviour {<\/p>\n\n\n\n

public int value = 10;
public GameObject explosion;<\/p>\n\n\n\n

void OnTriggerEnter (Collider other)
{
if (other.gameObject.tag == “Player”) {<\/p>\n\n\n\n

\/\/ explode if specified
if (explosion != null) {
Instantiate (explosion, transform.position, Quaternion.identity);
}<\/p>\n\n\n\n

\/\/ destroy after collection
Destroy (gameObject);
}
}
}
[\/code]<\/p>\n\n\n\n

Lo primero que hacemos es crear dos variables publicas, estas variables son las que veremos en el apartado Inspector y a las que podremos dar valor<\/strong>. Estas dos variables modificaran el comportamiento del Objeto (cuando acabemos el script). Las dos variables creadas s\u00f3n:<\/p>\n\n\n\n