domingo, 31 de octubre de 2021

EL MINERO PRÓXIMO LANZAMIENTO EN ITCH.IO ESTAS NAVIDADES 2021 Y AÑO NUEVO 2022;

THE MINER NEXT LAUNCH ON ITCH.IO THIS CHRISTMAS 2021 AND NEW YEAR 2022 .

EL MINERO PRÓXIMO LANZAMIENTO EN ITCH.IO ESTAS NAVIDADES 2021 Y AÑO NUEVO 2022.



Como provocar sonidos al golpear o colisionar en Unity con C#.;

 


Como provocar sonidos al golpear o colisionar en Unity con C#.



Utilizo este script….


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SUENAPORRAALGOLPEAR : MonoBehaviour {


public AudioSource tickSource;


void Start () {

tickSource = GetComponent<AudioSource> ();

}

void Update () {
}


void OnTriggerEnter(Collider other) {
if (other.gameObject.CompareTag ("Terrain")){

tickSource.Play ();


}}

}



El funcionamiento es muy simple….

El terreno del videojuego tiene el tac con nombre “Terrain”

La porra del gigante tiene el sript asignado, con un Shpere collider y el Is Trigger activado.

También tiene un Audio Source con el archibo de sonido puesto en el formato wav,

Al golpear el suelo se oye el sonido del porrazo….añado videos para ayudar entender.


 

viernes, 22 de octubre de 2021

Consejo de profesionales para los que hacemos videojuegos;

Consejo de profesionales para los que hacemos videojuegos


Piensa en algo en lo que te quieras especializar del desarrollo de videojuegos. A la hora de hacer un juego hay muchas tareas muy diversas. Céntrate en si quieres ser game design, programador, artista. Incluso dentro de la especialización hay varias ramas. Céntrate en alguna.

Empápate de arte de todo tipo. De música, de cine, de videojuegos, de pintura, da igual. Fíjate en qué hacen los grandes artistas y cómo lo hacen. Si es necesario, copia. Que no te importe. Y admite que lo has hecho. Siempre puedes decir que es un homenaje, o una referencia o un guiño ;). Una vez seas capaz de repetir lo que han hecho los grandes artistas serás capaz de seguir tu propio camino e innovar. La mejor forma para aprender es copiando. Tenlo clarísimo

Cada trabajo que hagas muéstralo al mundo, que no te de verguenza. Sometíendote a las críticas de la gente es como aprendes a ver las cosas de otra manera y ves los errores que has cometido. Fórmate, trabaja duro, sé constante, empieza y acaba proyectos, muéstralos al mundo, aprende a mantener la motivación y si es posible forma un buen equipo para hacer juegos con ellos y manteneos unidos.


No hay ningun secreto. Si quieres poder vivir de desarrollar videojuegos vas a tener que esforzarte como nunca lo hayas hecho en toda tu vida. Ten muy claro que hacer juegos tiene poco que ver con jugarlos y es muy sacrificado. Extremadamente sacrificado. 


Como provocar animaciones humanas por colisiones con C# en Unity.;

 

 

 

Como ago para que al tocarme el gigante me golpe o si lo golpeo yo 

a el se ponga a bailar…

uso este script de c#.....y sigo explicando...

 

 


 

  using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class muevopottacmonstruotatuado : MonoBehaviour {


        public Animator Anim;
        public float WalkSpeed;

        void Update () {


        }
            void OnCollisionEnter (Collision collision)
            {

//    }//   NO ES ORIGINAL PERO FUNCIONA TAMBIEN
//    void OnCollisionStay(Collision collision)//   NO ES ORIGINAL PERO FUNCIONA TAMBIEN

//    {//   NO ES ORIGINAL PERO FUNCIONA TAMBIEN

            //}//   NO ES ORIGINAL PERO FUNCIONA TAMBIEN
        //    void OnCollisionExit(Collision collision)//   NO ES ORIGINAL PERO FUNCIONA TAMBIEN

            //{//   NO ES ORIGINAL PERO FUNCIONA TAMBIEN


            if (collision.gameObject.tag == "detona") {

//        if (Input.GetKey (KeyCode.S)) {/////////////  imbento yoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
            Anim.SetBool ("corre", true);
            transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
        } else {
            Anim.SetBool ("corre", false);//// ORIGINAL
        



            if (collision.gameObject.tag == "pico") {

                //if (Input.GetKey (KeyCode.K)) {///////////////////////////////////////originallllllllllllll
                Anim.SetBool ("coloco", true);
                transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
            } else {
                Anim.SetBool ("coloco", false);//// ORIGINAL


                if (collision.gameObject.tag == "paca") {

                    //if (Input.GetKey (KeyCode.K)) {///////////////////////////////////////originallllllllllllll
                    Anim.SetBool ("amigo", true);
                    transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
                } else {
                    Anim.SetBool ("amigo", false);//// ORIGINAL


                    if (collision.gameObject.tag == "vala") {

                        //if (Input.GetKey (KeyCode.K)) {///////////////////////////////////////originallllllllllllll
                        Anim.SetBool ("conlabala", true);
                        transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
                    } else {
                        Anim.SetBool ("conlabala", false);//// ORIGINAL
                    }


                                            }
                                        }
                                    }

                        
}
}
            
   


    

Este script es muy parecido al que uso para mover al protagonista del juego mediante teclado……

por teclado al apretar tecla “E” el personaje mio corre el que manejo yo…...


--------------------------------------------------------------------------------------------------------------------


if (Input.GetKey (KeyCode.E)) {
Anim.SetBool ("CORRER", true);
transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
} else {
Anim.SetBool ("CORRER", false);


---------------------------------------------------------------------------------------------------------------------

Este script hace lo mismo pero por colisionar y tocar un personaje con otro…….



-----------------------------------------------------------------------------------------------------------------
if (collision.gameObject.tag == "detona") {
Anim.SetBool ("corre", true);
transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
} else {
Anim.SetBool ("corre", false);//// ORIGINAL



--------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------------

script en C#  animacion por teclas....

 

  using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CONTROLREPARTIDOR : MonoBehaviour {

    public Animator Anim;
    public float WalkSpeed;

    void Update () {



    //}
    //    void OnCollisionEnter (Collision collision)
    //    {


        if (Input.GetKey (KeyCode.E)) {
            Anim.SetBool ("CORRER", true);
            transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
        } else {
            Anim.SetBool ("CORRER", false);

            if (Input.GetKey (KeyCode.W)) {
                Anim.SetBool ("ANDA", true);
                transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
            } else {
                Anim.SetBool ("ANDA", false);

                if (Input.GetKey (KeyCode.S)) {
                    Anim.SetBool ("ATRAS", true);
                    transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
                } else {
                    Anim.SetBool ("ATRAS", false);

                    if (Input.GetKey (KeyCode.A)) {

                        Anim.SetBool ("CORRER", true);
                        transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
                    } else {
                        Anim.SetBool ("CORRER", false);

                        if (Input.GetKey (KeyCode.P)) {

                            Anim.SetBool ("BOMBA", true);
                            transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
                        } else {
                            Anim.SetBool ("BOMBA", false);


                            if (Input.GetKey (KeyCode.O)) {

                                Anim.SetBool ("BOMBA", true);
                                transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
                            } else {
                                Anim.SetBool ("BOMBA", false);

                                if (Input.GetKey (KeyCode.D)) {

                                    Anim.SetBool ("CORRER", true);
                                    transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
                                } else {
                                    Anim.SetBool ("CORRER", false);






                                            if (Input.GetButton ("Fire1")) {
                                            
                                            Anim.SetBool ("DISPARANDO", true);
                                            transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
                                        } else {
                                            Anim.SetBool ("DISPARANDO", false);


                                                if (Input.GetKey (KeyCode.M)) {
                                                Anim.SetBool ("LANZAR", true);
                                                transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
                                            } else {
                                                Anim.SetBool ("LANZAR", false);


                                    //        if (collision.gameObject.tag == "detona") {


                                            //    Anim.SetBool ("agachate minero", true);
                                                //transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);
                                        //    } else {
                                            //    Anim.SetBool ("agachate minero", false);
                                        //    }
                                        //



                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

}

 --------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------

pongo videos complementos a los videos anteriores......para ayudar a entender sobre el tema......








Y RECORDAR..........

viernes, 22 de octubre de 2021

Consejo de profesionales para los que hacemos videojuegos;

Consejo de profesionales para los que hacemos videojuegos


Piensa en algo en lo que te quieras especializar del desarrollo de videojuegos. A la hora de hacer un juego hay muchas tareas muy diversas. Céntrate en si quieres ser game design, programador, artista. Incluso dentro de la especialización hay varias ramas. Céntrate en alguna.

Empápate de arte de todo tipo. De música, de cine, de videojuegos, de pintura, da igual. Fíjate en qué hacen los grandes artistas y cómo lo hacen. Si es necesario, copia. Que no te importe. Y admite que lo has hecho. Siempre puedes decir que es un homenaje, o una referencia o un guiño ;). Una vez seas capaz de repetir lo que han hecho los grandes artistas serás capaz de seguir tu propio camino e innovar. La mejor forma para aprender es copiando. Tenlo clarísimo.



Cada trabajo que hagas muéstralo al mundo, que no te de verguenza. Sometíendote a las críticas de la gente es como aprendes a ver las cosas de otra manera y ves los errores que has cometido. Fórmate, trabaja duro, sé constante, empieza y acaba proyectos, muéstralos al mundo, aprende a mantener la motivación y si es posible forma un buen equipo para hacer juegos con ellos y manteneos unidos.


No hay ningun secreto. Si quieres poder vivir de desarrollar videojuegos vas a tener que esforzarte como nunca lo hayas hecho en toda tu vida. Ten muy claro que hacer juegos tiene poco que ver con jugarlos y es muy sacrificado. Extremadamente sacrificado. 

 

martes, 26 de octubre de 2021

Como poner un tatuaje a un personaje en Unity;

Pongo en mi blog un video explicando como e echo para poner unos tatuajes a un personaje en mi próximo videojuego que publicare en itch.io y que sera un bombazo estas navidades…...del 2021 y año nuevo del 2022...¡¡ja ja ja ja aj ajaja jajaja jaja!!!!!

Bueno al grano.

Estaba mirando de descargar imágenes de tatuajes profesionales y modernos desde internet pero e descartado la idea por tema derechos de autor, que no entiendo nada sobre el asunto y me pueden reclamar cualquier historia y tener que borrar el video o el videojuego cuando lo publique por pedirme quizás alguna cosa desorbitada teniendo en cuenta que no soy un profesional y no genero ingresos con mi afición.

Así que se me ocurrió desde el buscador de Google buscar imágenes de gravados del siglo XV, no creo reclame nadie ya , y e seleccionado algunos con imágenes macabras de esqueletos y muerte.

Están en blanco y negro y me interesaba que solo se viesen los dibujos, el trazo y las partes blancas que fueran unas transparencias.


E utilizado el programa gratuito GIMP.

En el video podéis ver los pasos que e ido siguiendo, me entenderéis muchísimo mejor viendo el video y parando las imágenes para ver lo que voy diciendo y seleccionando.

Pero esto es un blog así que escrivire los pasos mas importantes.

1- buscar imágenes en internet,

2-Abrirlo con GIMP y seleccionar las zonas blancas con la varita mágica, si no funciona a la primera seleccionar con herramienta de selección de rectángulos asta que hos salga lo del umbral B/N……

3- seguir las imágenes del blog e ir haciendo pruebas este tema para mi es nuevo y aunque e conseguido hacer lo que quería se me escapan algunos detalles que ahora mismo no sabría solucionarlos….pero en fin e puesto una base para que la gente que mire el blog pueda curiosear sobre el tema de transparencias con GIMP...sobre todo formatos de archivo PNG para transparencias eso si que es seguro..











viernes, 22 de octubre de 2021

Consejo de profesionales para los que hacemos videojuegos;

Consejo de profesionales para los que hacemos videojuegos


Piensa en algo en lo que te quieras especializar del desarrollo de videojuegos. A la hora de hacer un juego hay muchas tareas muy diversas. Céntrate en si quieres ser game design, programador, artista. Incluso dentro de la especialización hay varias ramas. Céntrate en alguna.

Empápate de arte de todo tipo. De música, de cine, de videojuegos, de pintura, da igual. Fíjate en qué hacen los grandes artistas y cómo lo hacen. Si es necesario, copia. Que no te importe. Y admite que lo has hecho. Siempre puedes decir que es un homenaje, o una referencia o un guiño ;). Una vez seas capaz de repetir lo que han hecho los grandes artistas serás capaz de seguir tu propio camino e innovar. La mejor forma para aprender es copiando. Tenlo clarísimo.

Cada trabajo que hagas muéstralo al mundo, que no te de verguenza. Sometíendote a las críticas de la gente es como aprendes a ver las cosas de otra manera y ves los errores que has cometido. Fórmate, trabaja duro, sé constante, empieza y acaba proyectos, muéstralos al mundo, aprende a mantener la motivación y si es posible forma un buen equipo para hacer juegos con ellos y manteneos unidos.


No hay ningun secreto. Si quieres poder vivir de desarrollar videojuegos vas a tener que esforzarte como nunca lo hayas hecho en toda tu vida. Ten muy claro que hacer juegos tiene poco que ver con jugarlos y es muy sacrificado. Extremadamente sacrificado. 

 




Advice of professionals for those who make video games Think of something you want to specialize in in video game development. When making a game there are many very diverse tasks. Focus on whether you want to be a game design, programmer, artist. Even within the specialization there are several branches. Focus on some. Soak up art of all kinds. Music, cinema, video games, painting, it doesn't matter. See what great artists do and how they do it. If necessary, copy. That you do not care. And admit that you have. You can always say that it is a tribute, or a reference or a wink;). Once you are able to repeat what the great artists have done, you will be able to follow your own path and innovate. The best way to learn is by copying. Have it very clear. Every job you do show it to the world, don't be ashamed of it. Submitting yourself to people's criticism is how you learn to see things differently and see the mistakes you have made. Train yourself, work hard, be constant, start and finish projects, show them to the world, learn to stay motivated and if possible form a good team to play games with them and stick together. There is no secret. If you want to be able to make a living from developing video games, you are going to have to make an effort like you have never done in your entire life. Be very clear that making games has little to do with playing them and is very sacrificing. Extremely sacrificed.

 

 

lunes, 18 de octubre de 2021

¿Como pintar directamente una figura 3d desde el propio blender 2.93.5 y pasarla aUnity, sin explicaciones complicadas que hacen perder el tiempo?

 

¿Como pintar directamente una figura 3d desde el propio blender 2.93.5 y pasarla aUnity, sin explicaciones complicadas que hacen perder el tiempo?

E gravado este video explicando una base para poder pintar con blender desde la versión 2.93.5…

 


 

Esta un pelin verde pero el que lo vea podrá siguiendo los pasos que e seguido , podrá pintar un personaje y pasarlo a Unity, e echo lo fundamental sin profundizar, e ido quizás demasiado rápido sin pulir las explicaciones, pero al menos es muy concreto y voy al grano porque ayer domingo estuve desde las 8 de la mañana asta las 12;30 del mediodía para poder explicar esto,,,mirando otro video de YouTube que estaba en ingles..., intentando sacar el grano de la paja...de dicho video.

Solo 3 pasos.

1- importar una figura 3d.

2-pasos seguidos para pintarla.

3- resultado en Unity de lo trabajado.

Para comprender lo hay que ir viendo el video parando las imágenes siguiendo los pasos y probando con el pc….no hay otra forma de aprender.

sábado, 16 de octubre de 2021

Animaciones con unity, ;

Animaciones con unity,

Boy a comentar como e echo las animaciones de los personajes del videojuego THE OLYMPIC SNIPER;

https://videojuegosenlineaasaco4.blogspot.com/2021/10/the-olympic-sniper.html 

Hice una combinación de animación descargada de unity, de las gratuitas, de cuerpo completo del personaje , sobre todo movimientos de caminar y correr, estas vienen ya echas y solo las aplique a los personajes en diferentes niveles, son muy laboriosas de hacer a mano, así que las descargue y las aplique,.


Las que si hice manualmente y son fáciles de hacer son cuando el personaje esta de pie o sentado o tumbado en el suelo, estas son muy fáciles de trabajar, solo tenia que animar facciones del rostro o las articulaciones de los brazos la cabeza hombros columna vertebral desde la cadera hacia arriba, algún movimiento de piernas mientras el personaje esta tumbado en el suelo.


También las animaciones de la cámara hacen un efecto interesante que enriquece la visualización del videojuego.


Los personajes los hice a partir del programa gratuito makehuman-community, tiene una característica que te permite hacer de forma aleatoria las proporciones de los personajes haciéndolos con los hombros mas anchos o mas estrechos o mas largos o mas cortos, y así con todas las partes del cuerpo humano, brazos, piernas, manos, pies ,cabeza ,caderas ,pecho, cuello, etc...etc… y tiene la opción de asignarle diversos esqueletos para exportarlo en formato fbx a unity, por ejemplo, es el que utilizo yo ahora mismo.

Yo uso un esqueleto que permite la manipulación del rostro, ademas de todo el resto de articulaciones, boca, nariz, ojos, etc.…

Lo paso a fbx y lo paso a unity, cuando esta en unity lo animo desde hay directamente sin manipular absolutamente nada del gameobject fbx.

En este video podéis ver un ejemplo...


 

 



Una captura de pantalla del Animation desde unity donde voy haciendo poco a poco las animaciones del rostro haciendo muecas y movimientos del tronco y brazos….

 

Como e dicho antes las animaciones echas para este caso que el personaje esta de pie o sentado o tumbado en el suelo son fáciles de hacer y dan bastante buen resultado, pero las de caminar y correr ya es diferente es mejor, al menos para mi, utilizar las de ejemplos y descargas gratuitas del tema, desde unity….

En la captura de pantalla desde Asset Store podéis elegir para empezar las Free, gratuitas , hos bais a hartar de mirar y probar animaciones de todo tipo


 

 

Para poner estas animaciones si tenéis que preparar el gameobject humanoide fbx para que las pueda utilizar…..en el video lo muestro....


viernes, 15 de octubre de 2021

C# scripts del videojuego THE OLYMPIC SNIPER;

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class baadepositoexplota21 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "depositoexplota") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (21);




            }
        }
    }
 

 

------------------------------------------------------------------------------------------------------------------------

 

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class badepositoexplota22 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "depositoexplota2") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (22);




            }
        }
    }

 

--------------------------------------------------------------------------------------------------------------------------

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;/// <summary>
public class cabiodeescenanivel0en25segundos : MonoBehaviour {


        public Text contador1;
        public Text fin1;
        private float tiempo = 25f;
        // Use this for initialization
        void Start () {
            contador1.text = " " + tiempo;
            fin1.enabled = false;




        }

        // Update is called once per frame
        void Update ()
        {
            tiempo -= Time.deltaTime;
            contador1.text = " " + tiempo.ToString ("f0");
            if (tiempo <= 0) {
                contador1.text = "0";
                fin1.enabled = true;



                {




                    Destroy (gameObject, 0.0f);

                    {

                        //Application.LoadLevel (1); ESTE ES EL ORIGINALLLLLLL

                        Application.LoadLevel (0);


                    }
                }
            }
        }

    }

--------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambia28portaga28 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "a28") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (28);




            }
        }
    }


---------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambiaa24 : MonoBehaviour {




        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "maloren") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (24);




            }
        }
    }

 ------------------------------------------------------------------------------------------------------------------------

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambiaa25 : MonoBehaviour {




        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "anieve") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (25);




            }
        }
    }



--------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambiaa26 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "muerte26") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (26);




            }
        }
    }

--------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambiaa30impactoexclamacioncubo : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "torreplayer") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (30);




            }
        }
    }

---------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;/// <summary>
public class cambiaa30portiempo : MonoBehaviour {


        public Text contador1;
        public Text fin1;
        private float tiempo = 25f;
        // Use this for initialization
        void Start () {
            contador1.text = " " + tiempo;
            fin1.enabled = false;




        }

        // Update is called once per frame
        void Update ()
        {
            tiempo -= Time.deltaTime;
            contador1.text = " " + tiempo.ToString ("f0");
            if (tiempo <= 0) {
                contador1.text = "0";
                fin1.enabled = true;



                {




                    //Destroy (gameObject, 0.0f); //////original activado

                    {

                        //Application.LoadLevel (1); ESTE ES EL ORIGINALLLLLLL

                        //    Application.LoadLevel (1);
                        Application.LoadLevel (30);

                    }
                }
            }
        }

    }

-----------------------------------------------------------------------------------------------------------------------


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambiaa31portacimpacto : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "a31") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (31);




            }
        }
    }

----------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambiaa33 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "a33") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (33);




            }
        }
    }

--------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambialaescenaa9alapretarespacio : MonoBehaviour {


        void Update ()
        {


            if (Input.GetKey(KeyCode.Space))////funciona contantemente al apretar W mayusculas a de ser
                //if (Input.GetKeyDown(KeyCode.W))// funciona pasito a pasito
       

        Application.LoadLevel (9);



        }
    }


--------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;/// <summary>
public class CAMBIAPORTIEMPOAL28 : MonoBehaviour {


        public Text contador1;
        public Text fin1;
        private float tiempo = 15f;
        // Use this for initialization
        void Start () {
            contador1.text = " " + tiempo;
            fin1.enabled = false;




        }

        // Update is called once per frame
        void Update ()
        {
            tiempo -= Time.deltaTime;
            contador1.text = " " + tiempo.ToString ("f0");
            if (tiempo <= 0) {
                contador1.text = "0";
                fin1.enabled = true;



                {




                    //Destroy (gameObject, 0.0f); //////original activado

                    {

                        //Application.LoadLevel (1); ESTE ES EL ORIGINALLLLLLL

                        //    Application.LoadLevel (1);
                        Application.LoadLevel (28);

                    }
                }
            }
        }

    }

-------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;/// <summary>
public class cambiaportirmpoal35 : MonoBehaviour {



        public Text contador1;
        public Text fin1;
        private float tiempo = 70f;
        // Use this for initialization
        void Start () {
            contador1.text = " " + tiempo;
            fin1.enabled = false;




        }

        // Update is called once per frame
        void Update ()
        {
            tiempo -= Time.deltaTime;
            contador1.text = " " + tiempo.ToString ("f0");
            if (tiempo <= 0) {
                contador1.text = "0";
                fin1.enabled = true;



                {




                    //Destroy (gameObject, 0.0f); //////original activado

                    {

                        //Application.LoadLevel (1); ESTE ES EL ORIGINALLLLLLL

                        //    Application.LoadLevel (1);
                        Application.LoadLevel (35);

                    }
                }
            }
        }

    }

--------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CAMBIO28 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "OTROMALO") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (28);




            }
        }
    }

----------------------------------------------------------------------------------------------------------------------


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CAMBIOA27 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "CAPSULAMALO") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (27);




            }
        }
    }
-------------------------------------------------------------------------------------------------------------------


Estos scripts de c# son ejemplos para cambios de escenas por tiempo y cambios de escenas por colisiones con gameobjets con un nombre de tag especifico para crear los cambios......no los e puesto todos es solo para que el que los vea se aga una idea del funcionamiento del videojuego al jugar con los cambios de escenas con el tema ,,,,tiempo y colision,,,,

 En la imagen se ven las treinta y pico escenas que uso en el videojuego.........

En la imagen se ven las treinta y pico escenas que uso en el videojuego.........

El videojuego funciona a la perfeccion en su version de descarga desde itch.io pero en la version de jugar desde la web tiene bugs, ignoro el motivo pero se repite continuamente una escena del videojuego del impacto a un personaje....solo ocurre en la version web, en la de descacarga ningun problema.


De todas formas la version web tambien es jugable pero has de ser muy rapido al acertar los disparos...rapidisimo bamos¡¡¡¡¡¡


El player dispara desde 3 lugares diferentes, tiene 3 objetivos en conjunto .

1-personajes aislados.

2-un ascensor para destrozar.

3- un personaje cargado encima de explosivos que si le das destruyes todo y todo y todo y a todossssss.

En resumen es un videojuego que solo tiene el objetivo de ir explorando lo que se puede disparar y ver que pasa, lo mejor del videojuego es que es completamente fluido,

 el cambio de escenas me salio genial en el sentido que el juego no se relantiza no funciona lento para nada en ningun instante....

y lo podia haber seguido trabajando asta alcanzar alrededor de 1Gb de capacidad, es lo maximo que me dejan para subir un videojuego a internet sin pedir permisos o consultas adicionales desde itch,io  ,,,

 o desde gamejolt......ademas boy a empezar un vidojuego nuevo sobre un minero y una mina...

.quiero jugar con las luces en este nuevo proyecto, y acerlo muy corto, muy concreto, y que sea completo, con principio y fin....no cuento nada que me lo copian.....pero saldra en itch.io ...

.a la venta....un proyecto pensado para las navidades que ya se caen encima nuestro...hare una demo y el proyecto completo lo vendo por 1 dolar...

.si no vende lo pondre gratis con el tiempo...¡¡ja ja ja ja ja ja!!!  es un jovi una aficion la mia..pero que narices lo economico motiva un monton cuando te ponen la miel en los lavios.




Seguire con detalles del videojuego C# scripts del videojuego THE OLYMPIC SNIPER,

este script de devajo cambia de escena al apretar la tecla "espacio" "espace" la mas alargada del teclado...


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambialaescenaa9alapretarespacio : MonoBehaviour {


        void Update ()
        {


            if (Input.GetKey(KeyCode.Space))////funciona contantemente al apretar W mayusculas a de ser
                //if (Input.GetKeyDown(KeyCode.W))// funciona pasito a pasito
        

        Application.LoadLevel (9);



        }
    }

-------------------------------------------------------------------------------

---------------------------------------------------------------------------


Las de cambio de escena por tiempo, explicare su funcionamiento lo mejor que pueda ....pongo un ejemplo aqui devajo....e imagenes captura de imagenes,,,,,




    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;/// <summary>

public class cambioaescenaanueve : MonoBehaviour {


        public Text contador1;
        public Text fin1;
        private float tiempo = 15f;
        // Use this for initialization
        void Start () {
            contador1.text = " " + tiempo;
            fin1.enabled = false;




        }

        // Update is called once per frame
        void Update ()
        {
            tiempo -= Time.deltaTime;
            contador1.text = " " + tiempo.ToString ("f0");
            if (tiempo <= 0) {
                contador1.text = "0";
                fin1.enabled = true;



                {




                    //Destroy (gameObject, 0.0f); //////original activado

                    {

                        //Application.LoadLevel (1); ESTE ES EL ORIGINALLLLLLL

                    //    Application.LoadLevel (1);
                    Application.LoadLevel (9);

                    }
                }
            }
        }

    }




Hay que poner un canvas y unos textos que se tienen que arrastrar con el mouse en las casillas vacias del escript,,,,,los textos tiene que tener el numero 0.

Si no se hace esto no funciona.



Esto es en el tema por tiempo que cambia la escena.

En el tema de colision por tag, al impactar el proyectil sobre un personaje que tiene un tag concreto, hace que se cambie la escena,,,,en esta imagen captura pongo los diversos escripts con la orden de tag concreto en cada uno de ellos para que aga los cambios de escenas en el videojuego...


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CAMBIO28 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f); 


            if (collision.gameObject.tag == "OTROMALO") {
                //Destroy (gameObject, 2.0f); 

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (28);




            }
        }
    }




El personaje se llama "malopasea1" pero le puesto un tag con el nombre "OTROMALO"    el cual es el que esta escrito en el script y hace la funcion del cambio de la escena,,,,es un pelin complicado a lo primero de entender,,,,,hay que hacer muchos juegos y repetirse para ir comprendiendolo.....pero cuando se consigue armonizar el tema quedan las ideas geniales , me refiero los cambios que se pueden conseguir durante el juego.https://gamejolt.com/games/farncotrador_olimpico-3/654733