miércoles, 23 de agosto de 2023

jueves, 17 de agosto de 2023

scripts en C# Unity de barra de vida ganar vida y barra de vida perder vida;

 

 

 



https://www.youtube.com/watch?v=JbFlzZAQxZA&t=2s

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class datosjugador : MonoBehaviour
{
    public int vidaPlayer = 1000;//INBENTO PONER 1000
    public Slider vidaVisual;
        private void Update()

        {

        vidaVisual.GetComponent<Slider>().value = vidaPlayer;//INBENTO =1000;

      //  if (vidaPlayer <= 1000)// IMBENTO 1000 EL ORIGINAL 0--estaba asi
            if (vidaPlayer <=1)// IMBENTO 1000 EL ORIGINAL 0
        {

            Debug.Log("game over");


            Application.LoadLevel(1);//imbento




        }
}
}

 

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

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


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

public class boladamage : MonoBehaviour
{


    public int vidaPlayer = 1000;//IMBENTO TODA LA LINEA

    //  public int boti;//imbento
    public int damage;
    public GameObject Player;
    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "bobo")//original
           // if (other.tag == "yoyo")
            {

            Player.GetComponent<datosjugador>().vidaPlayer -= damage;


        }
     //   if (other.tag == "yoyo")//imbento yo
        {

           // Player.GetComponent<datosjugador>().vidaPlayer += boti;//imbento
          //  Player.GetComponent<datosjugador>().vidaPlayer += damage;//imbento

            //  Debug.Log("estoenemigo");//original
        }
    }
}

 

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

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

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

public class boladavida : MonoBehaviour
{



    public int vidaPlayer = 1000;//IMBENTO TODA LA LINEA

    //  public int boti;//imbento
  //  public int damage = 50;//ORIGINAL
    public int damage = 1000;//IMBENTO

    public GameObject Player;
    private void OnTriggerEnter(Collider other)
    {
      //  if (other.tag == "yoyo")//original
          //  if (other.tag == "tutu")//imbento
                                      if (other.tag == "bobo")//deveria ser el correcto por que es el tag del player bobo el que toca
            {

           // Player.GetComponent<datosjugador>().vidaPlayer += damage;//ORIGINAL
            Player.GetComponent<datosjugador>().vidaPlayer = damage;//IMBENTO

        }
        //   if (other.tag == "yoyo")//imbento yo
        {

            // Player.GetComponent<datosjugador>().vidaPlayer += boti;//imbento
            //  Player.GetComponent<datosjugador>().vidaPlayer += damage;//imbento

            //  Debug.Log("estoenemigo");//original
        }
    }
}

 

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

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

viernes, 11 de agosto de 2023

¡¡Viva itch.io!!;

Hace unos meses cometi un error publicando en itch,io, me entusiasme demasiado con mis trabajos y me puse a lo loco apublicar asta la mas minima mejoria de los juegos que ago, y me llamaron la atencion desde itch,io,
la verdad tienen razon y ahora soy mucho mas cuidadoso.........e aqui la advertencia de  itch,io que ahora cumplo al pie de la letra....... 
 
 
 Hola, Puede publicar contenido pago y su cuenta no está restringida para hacerlo; sin embargo, cargar shovelware, reskins o contenido con poco o ningún cambio con respecto a las cargas anteriores se considera spam y no está permitido según nuestras pautas. Descubrimos que su otra cuenta infringe esa directriz y, como tal, ese contenido ya no se mostrará en las búsquedas. Absténgase de cargar cantidades masivas de contenido de baja calidad para aumentar su visibilidad o intentar que la gente compre algo. Hacer lo mismo en esta nueva cuenta dará como resultado que se tomen las mismas medidas en su contra. Gracias

 


domingo, 30 de julio de 2023

EFECTO DE TELA EN UNITY VERSION Unity 2022.1.12f1


 Llevo 4 horas para hacer un efecto de bandera ondeando al viento, al final lo e conseguido y echo una captura de video de como se hace, teneis que prestar atencion al video, en Unity a la que cambian una version cambian tambien un monton de cosas, hay que estar continuamente descargando y aprendiendo los cambios de las versiones nuevas que se han echo, la verdad es complicado hay que aprender casi de 0 costantemente, no se si podrian los ingenieros informaticos de Unity hacer las mejorias sin tener que cambiar las cosas casi de forma radical algunas veces............


Otro tema es de hornear las luces con Unity, cuando pones la iluminacion para compilar el juego primero has de hornear bakear le llaman todo el entorno del juego, si haces algo muy ambicioso, aun con un pc bueno ,rapido ,y potente, puedes tardar varias horas en tenerlo preparado para la compilacion......el juego que estoy haciendo tardo 20 minutos en hornearse con una sola luz de sol, ahora e puesto una simple bombilla que ilumina una sala con luz lila  y de forma que no cree sombras y me dice que lo hace en una hora.......en fin boy aprendiendo,,,y el pc que tengo es bueno, la ram es de 64Gb, quizas el microprocesador no es tan bueno....la grafica de unos 6Gb....discos duros tengo de sobra de tipo ssd.

jueves, 20 de julio de 2023

Ultimos scripts en C# y comentarios e ideas sobre administrar la memoria en los juegos y que funcionen con fluidez;


https://youtu.be/7k8F-RYCMK4 

Optimizar el juego es la palabra clave, los recursos de memoria del pc para que el juego funcione fluido.....

4... factores clave a estudiar y practicar....que casi resuelven el asunto.....

1--Programar con C# de forma que la memoria se carge y se descarge de forma inteligente con enemigos y otros factores secundarios......

2--Utilizar el sistema de LOD de forma inteligente.

3--Occlusion de camara.

4--Texturas cuadradas para los elementos del juego. 

Estos temas seran comentados en el futuro en este blog por ser fundamentales........

 

 VIDEOS EN YOUTUBE DE GENTE QUE SABEN MAS DE ESTOS TEMAS VALE LA PENA MIRAR


como se hace lod LOD en unity
https://youtu.be/jQC2rFJO67E
https://youtu.be/CT-KpzF9dh8

COMO SE HACE OCLUSION COLLIN
https://youtu.be/C0qqC650mQY
https://youtu.be/bUbypCBgAf4
https://youtu.be/bUbypCBgAf4
https://youtu.be/18KMqxJlhmw
https://youtu.be/0lp8KxvkNww

OPTIMIZAR TEXTURAS
https://youtu.be/PvU6IjyiOMc

https://youtu.be/AZLdsIG5ypk

HORNEADO EN UNITY
https://youtu.be/L_e4FTUdQsI
https://youtu.be/L_e4FTUdQsI



 

 

 


 https://youtu.be/qQaKrP16ZMI

 

 script en C# para creacion de enemigos cuando se pasa por un en empty GameObject con un Box Collider con el Trigger activado...


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

public class ACTIVA6ENEMIGOS : MonoBehaviour
{
   


    public GameObject texto;

    public GameObject texto1;
    public GameObject texto2;
    public GameObject texto3;
    public GameObject texto4;
    public GameObject texto5;
    private void OnTriggerEnter(Collider other)
    {
        //  if (other.tag == "uno")
        // {

        if (other.tag == "bobo")
        {


            texto.SetActive(true);
            texto1.SetActive(true);
            texto2.SetActive(true);
            texto3.SetActive(true);

            texto4.SetActive(true);
            texto5.SetActive(true);


        }
    }
}


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

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

En el script aparecen 6 enemigos cuando el player pasa por el GameObject, no consigo encontrar por internet scripts sencillos para aprender a programar, en este de aqui, cualquier persona con poca idea lograra, fijandose un poco, no solo poner 6 enemigos sino los que le vengan en gana una docena si quiere o 100 si sabe administrar la memoria.....un comentario que quiero poner es que para que los enemigos no se junten todos y se pongan uno encima del otro cuando persiguen al player hay que cambiar el......Radius...Obstacle Ovidance...del Nav Mesh Agent........a 5.75 ya hace una vase amplia para que no se pegen unos a otros y esten los 6 en el mismo sitio y solo se vea uno en el juego....

Cuando son derribados por el player el gameobject que los sustituye a de ser destruido con un......

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

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

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


namespace UnityStandardAssets.Utility
{
    public class TimedObjectDestructorr : MonoBehaviour
    {
        [SerializeField] private float m_TimeOut = 1.0f;
        [SerializeField] private bool m_DetachChildren = false;


        private void Awake()
        {
            Invoke("DestroyNow", m_TimeOut);
        }


        private void DestroyNow()
        {
            if (m_DetachChildren)
            {
                transform.DetachChildren();
            }
            DestroyObject(gameObject);
        }
    }
}

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

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

se pone un tiempo y el personaje con una animacion de abatido al final se borra de pantalla...y se libera memoria.......



Otros escripts que e conseguido hacer y entender........

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

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

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

public class correralapretare : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {




        if (Input.GetKey(KeyCode.E))////funciona contantemente al apretar W mayusculas a de ser
                                    //if (Input.GetKeyDown(KeyCode.W))// funciona pasito a pasito
                                    //if(Input.GetKey(KeyCode.UpArrow))
            transform.Translate(0,0,4.0f * Time.deltaTime);





    }
}

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

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


El player cuando aprieto la tecla "E" se desplaza hacia delante, y al juntarse este script con el de las animaciones y otros movimientos consigo tambien cambiar la animacion de andar por la de correr........



El script anterior sobre creaccion de enmigos tiene docenas de aplicaciones y combinaciones posibles que aun estoy estudiando y practicando y si se utilizan con ingenio ,,,pueden equilibrar el tema de memoria y fluidez del juego,,,,, tambien estoy estudiando y practicando sobre el tema LOD de la camara y el renderizado de los gameobjects y sus poligonos, a mas poligonos mas memoria y menos fluidez a menos poligonos menos memoria fuerza el pc y mas fluidez en los juegos,,,,,,,

En internet hay videos sobre el tema y trabajandolo con blender , combinandolo con unity,,,,,se consigue que la camara aga mas o menos el trabajo de cargar memoria y descargarla en funcion de cuando nos hacercamos en el juego algun objetivo construccion paisaje personaje o lo que se tercie.....