Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Chaskarron

#16
En primer lugar quisiera corregirte y decirte que Java no es lo mismo que JavaScript y puede dar lugar a que te den codigo escrito en Java que nada tiene que ver con JavaScript, y luego vienen los errores, y el "no funciona". Y ahora vamos al meollo de la cuestion. Te pongo varios ejemplos escritos en 3 codigos para que vayas encontrando la relacion.

 
 

// Ejemplo en Java
public class MiClase{
private float _numero;
public boolean boleano = false;
public double numeroLargo;
public string cadenaTexto;

public MiClase(){} // contructor de la clase sin parametros
public MiClase(float pNumero){ //constructor de la clase con parametro
   this._numero = pNumero;
}
public void MiMetodo(){ // ejemplo de un metodo
   System.out.println("Esto lo pinto en consola");
}
public float getNumero(){ // ejemplo de una funcion
   return this._numero;
}
public static void Main(string args[]){
   // esta funcion es la que se ejecuta para lanzar la aplicacion
}
}


// ejemplo en JavaScript
function MiObjeto(){ // construccion de un objeto en JavaScript
this.initialize.apply(this, arguments);
};
MiObjeto.prototype.initialize = function(){ // constructor del objeto
this._param1 = 1;
this._param2 = "texto";
     this._param3 = true;
};
Object.defineProperties(MiObjeto.prototype, { // getters de las propiedades del objeto
    param1: { get: function() { return this._param1; }, configurable: true },
    param2: { get: function() { return this._param2; }, configurable: true }
});
MiObjeto.prototype.miMetodo = function(valor){ // metodo del objeto con parametros
this._param2 = valor;
};
MiObjeto.prototype.miFuncion = function(){ // funcion del objeto
return this._param3;
}


//ejemplo en C#
public class MiClase{
private float _numero1;
private int _numero2;
private string _texto;
private bool _boleano;
public int numeroPublico = 10;
public MiClase(float n1, float n2, string txt, bool bol){ // constructor de la clase con parametros
   _numero1 = n1;
   _numero2 = n2;
   _texto = txt;
   _boleano = bol;
}
public void MiMetodo(){ // metodo de la clase
   Debug.Log("Esto lo pinta por consola");
}
public bool IsActive(){ // funcion de la clase
   return _boleano;
}
}

 
Como podras comprobar existe una diferencia abismal entre Java y JavaScript, y ahi radica la importancia de diferenciar estos dos lenguajes. Otra cuestion es que el lenguaje JavaScript que usa unity no es el JavaScript como realmente seria, sino que es una adaptacion del lenguaje para que el interprete interno de unity pueda entenderlo. Y seguramente que el codigo que te he puesto como explicacion unity no seria capaz de interpretarlo y tiraria errores por todas partes.

 
 
No se me ocurren ejemplos mas extensos para que puedas ir captando la idea del cambio que existe en usar el lenguaje interpretado en JavaScript con el lenguaje C# usados en unity.
 
Un saludo.
#17
General (Antiguo) / Saludos
Febrero 15, 2018, 06:14:52 PM
Bienvenido BloodStar, te recomiendo usar el enlace al canal de discord, en ese canal se suelen publicar enlaces a clases de uso avanzado de Unity y programacion ya sean las explicaciones de "Eskema" o las de "La cueva de L_Draven" ambos unos maquinas y con bastante experiencia en el desarrollo de videojuegos.
 
Si buscas tutoriales donde expliquen mas la interfaz de unity te recomiendo buscar los tutoriales de dbJocs en youtube, cuyos enlaces rondan por el foro.
 
Aunque bueno, voy a facilitarte un poco la tarea 
 
Canal de youtube de dbJocs https://www.youtube.com/channel/UCJ_iO3lsfpz0z0ZEy4uZ7wA
 
Canal de youtube de Skemaware https://www.youtube.com/channel/UCijDglPD0acGO9fZglUjSkw
 
Canal de youtube de La cueva de L_Draven https://www.youtube.com/channel/UC49ACIHmz1yvHqdDE4Y_foQ
 
Si quieres acceder a las emisiones en directo busca SkemaGames y L_Draven en el portal de Twitch (twitch.tv) y siguelos para recibir notificacion cuando vayan a emitir en directo.
 
Espero haberte ayudado y espero que disfrutes de la comunidad. Saludos!!!
 
 
#18
El primer stream ha estado genial, todo bastante simplificado para que luego cada cual se apañe con sus manias de programar, aunque vienen muy bien las orientaciones en cuanto a la metodologia de nombrado y estructuracion para mantener un codigo limpio y legible.
 
Al menos voy a aprender eso de los "delegados" ya que jamas he tocado una facultad y todo lo que he aprendido de programacion ha sido por cursos, un modulo, y a base de equivocarme hasta la saciedad hasta que las cosas terminan funcionando.
 
Si pudieses explicar con el SceneManager a actualizar la barra de progreso me vendria genial, ya que eso lo he hecho en Java usando Threads y no se me ocurre como habria que plantearlo en C#.
 
Un saludo y gracias por dedicar tu tiempo a compartir tu experiencia 
#19
General (Antiguo) / Holaaa!!!
Febrero 12, 2018, 11:44:34 PM
Hola y bienvenido. Mi recomendacion es aprender primero a usar bien las herramientas, practicar mucho y cometer muchos errores y con el tiempo ir adquiriendo experiencia para aventurarte a realizar proyectos mas ambiciosos. Puede costar al principio, pero con ganas y dedicacion todo llega, la cuestion es nunca desistir.
 
Saludos!!! disfruta de unity y la comunidad 
#20
General (Antiguo) / 2 controles tanque
Febrero 11, 2018, 01:05:19 AM
Correcto, yo he puesto el FixedUpdate porque he hecho copy&paste y no he caido en ello. Gracias @lightbug por el apunte ;)
#21
General (Antiguo) / 2 controles tanque
Febrero 10, 2018, 11:36:57 PM
tienes que controlar cada control del tanque mediante una variable boleana por ejemplo.
 

public class TankController : Monobehaviour{
bool controlB = false;
void FixedUpdate(){
   If (Input.GetKeyDown(KeyCode.Q)){
      controlB = !controlB;
   }
   if(controlB){
      MovimientoB();
   }else{
      MovimientoA();
   }
}
}

 
Del modo que tu lo tienes planteado solo usa el MovimientoB "mientras" este pulsado el KeyCode asociado.
#22
Recordatorio añadido para no perdermelo. Ahora la espera se me hara eterna... ¿Tienes canal de youtube y los subes luego ahi?, ¿o se quedan en twitch?. Es que aunque ahora el programa de partners de youtube lo han modificado pese a necesitar miles de reproducciones para ganar un par de euros, y ahora es una odisea conseguir acceder a ser partner, creo que deberias hacer como un feedback subiendolos luego a youtube y poniendo en las descripciones el enlace al canal de twitch, a ver si se anima mas gente por un lado, y por otro lado a ver si consigues alcanzar los requisitos para ser partner y conseguir un incentivo, aunque el incentivo sea una mierda en comparacion con el esfuerzo.
 
No es necesario grabar el stream al mismo tiempo que lo realizas, hay extensiones del navegador para descargar los videos de internet, asi que seria hacer el stream, descargar el video, editarlo si es necesario, y ponerlo en youtube. Yo uso la extension "ant videodownloader" en firefox para descargar los tutoriales que suelo revisar con frecuencia para ahorrarme busquedas y tiempos de carga.
 
Dicho todo esto, espero con ansia viva el stream. Un saludo!!
#23
General (Antiguo) / Cambio de escena al terminar video
Febrero 07, 2018, 08:29:15 PM
Perfecto!!!! Si has necesitado modificar el codigo, ponlo para que sirva de ayuda a alguien que le surja la misma incidencia.
 
Saludos!!!
#24
General (Antiguo) / Cambio de escena al terminar video
Febrero 07, 2018, 07:05:58 PM
Uffff, es lo que pasa por no buscar en la documentacion de Unity, el frameRate son los frames por segundo del video, y no entiendo que hace ese bucle por ahi, y menos en la funcion Start.
 
Prueba algo un poco mas metodico como esto, que tampoco te aseguro que funcione porque ni siquiera lo he probado, pero seguro que se acerca mas a lo que quieres conseguir.
 

using UnityEngine;
using UnityEngine.Video;
 
public class MovieLogo : MonoBehaviour{
    VideoPlayer vPlayer;
    GameObject camara;
    void Start()
    {
         camara = GameObject.Find("Main camera"); // esto bien
         vPlayer = camara.AddComponent<VideoPlayer>(); // esto bien
         vPlayer.source = VideoSource.Url; //debes indicarle la fuente de donde recoge el archivo si es una url
         vPlayer.renderMode = VideoRenderMode.CameraFarPlane; // esto bien
         vPlayer.url = "http://localhost/video/keansoft.mp4"; // esto bien
         vPlayer.Prepare(); //prepara el video, ya que tiene que cargarlo desde una url
         //el playOnAwake lo reproduce desde la funcion Awake que se ejecuta antes del Start, entonces Awake ya ha ocurrido
         vPlayer.loopPointReached += EndReached; //determina que manejador usa cuando finalice el video
    }
   
    void Update()
    {
        if(vPlayer.isPrepared && !vPlayer.isPlaying){ // esta preparado y sin reproducir???
            vPlayer.Play();// pues dale al play
        }
    }
    void EndReached(VideoPlayer vPlayer) //manejador que se ejecuta al terminar el video
    {
        UnityEngine.SceneManagement.SceneManager.LoadSceneAsync("Menu"); //vete al menu majo
    }
}

 
Espero que te sirva la ayuda ;)
#25
General (Antiguo) / Error Al Importar Texturas
Febrero 07, 2018, 12:24:05 AM
Siempre surgen ese tipo de problemas con la importacion a Unity, no obstante segun las propiedades de exportacion que hayas marcado en el programa de edicion 3D el modelo exportado guarda la informacion de los materiales, pero los materiales no se exportan con el modelo, solo se importa la informacion sobre dichos materiales. Por eso una vez importado el modelo en Unity, el siguiente paso es crear los materiales de ese modelo usando las texturas que se hayan usado en el editor 3D para usar el mismo UVmapping. Para eso tienes que editar las opciones de importacion del modelo en la seccion de "materiales" y agregarle los materiales que has hecho en Unity utilizando las texturas que has usado o generado en el editor 3D.
 
Te dejo una imagen de donde debes arrastrar los materiales creados en unity, ten en cuenta que si usas texturas que no usen el UVunwrap del modelo, no encajaran y no se veran correctamente. Una vez aplicados los materiales solo tienes que pulsar en "apply" y el modelo se actualizara con los materiales y estara listo para usarlo.
 
#26
Pues me acabas de alegrar el dia  por cierto @Eskema, ¿sueles avisar cuando vas a hacer un directo? He visto que no tienes un dia definido, asi que supongo que es cuando tienes tiempo para hacerlo. Suelo estar siempre por discord tambien, asi que estare al tanto para ver si puedo estar en algun directo y poder preguntar alguna cuestion que pueda surgir.
 
Gracias de antemano. Saludos!!!!
#27
@Eskema, no se si es porque me he registrado hace poco en twitch, o porque no tengo version de pago, o no se por que sera pero habia visto tu sugerencia de pedir tutoriales pero no puedo, o no se responder.
 
Por otro lado tampoco quiero andar de exigente, pero mira ya que te pones en ese plan, pues me gustaria que hicieses algun tutorial de como hacer un Core, pero sin ser tan optimizado como el tuyo, sino mas bien hacer algo mucho mas simple para orientar a la gente sobre como poder hacerse su propio Core. Por ejemplo, en el que yo me estoy haciendo uso clases estaticas para no tener que instanciar y poder usar propiedades y metodos ya definidos previamente. Ya sean variables que se usen en muchos ambitos, o metodos y funciones que tambien se usen a menudo y no tener que definir la misma funcion en 40 objetos. Entonces partiendo de ahi, y teniendo poca experiencia en programacion orientada a videojuegos me gustaria poder aprender de gente con mas experiencia y poder plantearme mejor lo que quiero conseguir.

Otro tema seria por ejemplo ampliar un poco la escasa informacion que viene en la documentacion de Unity sobre los objetos del Unity.Engine, ya que en la documentacion los ejemplos practicos brillan un poco por su ausencia y cada vez que consulto algo y veo que apenas dice nada me subo por las paredes.

La cuestion es que, al menos para mi, toda la informacion, tutoriales, ejemplos simples, que sea gratuito y en mi idioma, me viene genial, mas aun cuando lo hace alguien que tiene experiencia en esta industria. Otra cosa es que te podria decir "quiero que hagas un tutorial para juegos de esto o lo otro", pero aun me encuentro en fase de seguir aprendiendo como para tener en mente algun proyecto definido en el cual invertir mi tiempo, de ahi que me parece maravilloso cualquier tutorial.
 
Como punto final te comento que tu manera de plantearte la interfaz de usuario me resulta mas que genial, me ha ayudado bastante para hacerme una idea de como hacerlo cuando la ocasion lo requiera. Lo del objeto SceneManager o el AudioManager ya tenia una ligera idea al haberlo visto programado en otros engines pero siempre es bien recibida toda la informacion disponible, ya que mucho o poco siempre ayuda.
 
Bueno, si sigues con los tutos pues gracias, que no sigues con los tutos, pues gracias por el esfuerzo y por lo que ya has publicado. Cada cual tiene sus propositos e inquietudes y al fin y al cabo tus razones tienes para seguir o para dejarlo ahi. De todas formas gracias igualmente.
 
Saludos!!!!
#28
General (Antiguo) / Poner y quitar balas recamara
Febrero 06, 2018, 07:08:05 PM
No se que quieres hacer realmente, pero lo ideal es trabajar con numeros y no con GameObjects como por ejemplo te ha comentado @lightbug. Para lo que tendrias que crear un objeto simple que se actualize en cada colision o en cada recarga.
 
Por ejemplo:
 

class Cargador{

public int maxBalas = 12; // esto le indicaria que el tamaño del cargador es de 12 balas
public GameObject balaMdl; // con esto tienes la instancia del GameObject y no necesitas 40 objetos en la escena
private int balas = 0;
void Choque(){
   balas -= Random.range(0, balas);
}
void Recargar(){
   balas = maxBalas;
}

}

 
 
#29
Hola @Eskema, como te habras dado cuenta soy nuevo en la comunidad y recien acabo de descubrir tu canal de twitch (desconocia este portal) y precisamente estoy interesado en tutoriales avanzados del manejo de Unity, ya que he visto muchos en ingles con los que he podido aprender algo, pero mi nivel de ingles es de lo mas bajo lo peor. Si bien soy programador pero no tengo carrera universitaria, ya que todo lo que he aprendido ha sido a base de cursos de SEPE, un modulo de grado medio, muy poca experiencia laboral en este entorno, y mucha no, muchisima busqueda de informacion en las documentaciones de los lenguajes que voy aprendiendo, de la que lamentablemente, y al menos para mi, existe muy poca en castellano.
 
Se de antemano que lo recomendable es aprender ingles, y creeme, lo intento concienzudamente, pero mi oido no esta afinado para entenderlo y la mayoria de las veces solo escucho "wanchu wanchu is needed to complete wanchu don't forget".
 
De momento voy a verme los videos que has subido porque me parecen mas que interesantes, es mas, me encuentro ahora mismo programando un framework para uso personal porque como bien dices, Unity ofrece lo mas basico, y lo esencial queda en manos del usuario para que sea implementado. Cuando termine de verme todos los videos ya te comentare mi impresion, aunque de momento ya te estoy agradeciendo el trabajo que has hecho porque me viene como anillo al dedo poder encontrarme tutoriales de uso avanzado en mi idioma y no en ingles con los que estoy mas perdido que un hijo p... en el dia del padre.
 
Gracias por el esfuerzo y planteate seriamente seguir impartiendo los tutoriales en castellano, al menos yo te estare agradecido.
 
Un saludo!!!
#30
General (Antiguo) / Hola a todos
Febrero 05, 2018, 04:12:54 PM
Hola a todos. Me presento siempre con el pseudonimo de Chaskarron en medios publicos. Soy programador desde hace poco mas de 13 años en entorno web y de acceso a bases de datos en varios lenguajes ya sean SQL, MySQL u Oracle usados en distintos lenguajes de programacion como ya sean PHP, Java o Visual Basic entre otros. He ejercido como docente de programacion Visual Basic orientada a las herramientas de Microsoft Office. Pero lo que mas me entusiasma y me ha entusiasmado desde siempre han sido los videojuegos y la idea de poder desarrollar algun dia un videojuego decente con el cual poder avanzar en el mundo del game development. No solo me gusta el desarrollo de videojuegos, sino que tambien me gusta jugarlos. Vengo de la generacion del pac-man y el Mario Bross y he sido poseedor de varias videoconsolas de 8 y 16 bits como la Master System II o la Super Nintendo (grandiosas en aquellos tiempos), aun las conservo como recuerdo de aquellos maravillosos vicios.
 
Durante mis estudios de programacion (siempre orientados a entorno web o escritorio con acceso a bases de datos lo que conlleva a estar un poco perdido en la programacion orientada a videojuegos) he ido aprendiendo de manera autodidacta muchos de los aspectos a tener en cuenta sobre el desarrollo de videojuegos, he manejado herramientas como 3D studio Max o Maya para aprender ciertos conceptos del modelado, el rigging o el UVunwrap para finalmente pasarme a usar Blender (Sketchup para modelado mas simple que tambien sirve) ya que mis licencias educativas de los programas de pago ya me caducaron hace tiempo y Blender ofrece practicamente la misma funcionalidad con coste cero.
 
Tambien he conocido otros motores de juegos como el SDK del motor source (demasiado complicado para mi gusto), Unreal Engine (muy poco intuitivo), Game Maker Studio (no me termina de agradar) y algun otro. No obstante con el editor de niveles del motor source si he llegado a aprender a hacer niveles decentes y optimizados aunque debido a un "emergency format" perdi todo el progreso que tenia desarrollado y lo abandone.
 
Quiza no sea para alardear el decir que manejo los engines RPG Maker VX Ace y RPG Maker MV de una manera que creo es casi profesional en cuanto al manejo de la interfaz y el scripting (Ruby y JavaScript), pero haber aprendido a manejar estos engines creo que me ha aportado bastante experiencia para poder dar el gran paso de profundizar en el entorno de Unity.
 
Para concluir mi presentacion ante esta comunidad decir que llevo ya un tiempo aprendiendo Unity (siempre de manera autodidacta) y he desarrollado una pequeña demo de un shooter de naves en 2D, cuyo proyecto ha quedado unicamente a modo de presentacion de mi aprendizaje del engine. Es una demo muy simple para alguien que sea un usuario avanzado, pero que puede servir de inspiracion para aquellos que se inician en este engine.
 
Creo que publicar un enlace a este trabajo de presentacion no inclumple las normas de uso de la comunidad, ya que no es un enlace a un proyecto, sino que seria a modo de presentacion. No obstante antes de publicar ningun enlace prefiero que un administrador me oriente en ese aspecto para no inclumplir las normas de la comunidad.
 
Creo que me he extendido demasiado en mi presentacion pero no me gusta solamente decir "hola que tal aqui estoy" y me congratula aportar un poquito quien soy, que es lo que hago y que quiero conseguir en mi paso por esta comunidad.
 
Un saludo a todos.