Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Hola soy nuevo por aqui nesesito ayuda con un menu

Iniciado por EiderDj, Febrero 22, 2014, 12:21:55 AM

Tema anterior - Siguiente tema
el caso estoy haciendo un juego de auto y quiero que el menu  me deje  modificar el auto antes   de iniciar la carera ya el auto  tienes los quick  de carroseria y  todo   por favor aquel   que este  interesado en  pertenecer al prollecto  mio  que me escriva en  privado  no soy buen programador ya que   realmente  trabajo de arquitecto pero soy super  bueno en el modelado 3d  y  renderisado  aqui les dejo un ejemplos de lo que quiero hacer 
1
" rel="external nofollow">

 
2
" rel="external nofollow">

 
saludos de antemanos  y disculpen laqs  molestia   que pueda causar  
 
aqui  una captura de el grafico que va teniendo si   me recomiendan algo  para los grafico de  paso mejor
 
http://postimg.org/image/irw7hbvgh/full/" rel="external nofollow">
http://postimage.org/index.php?lang=spanish" rel="external nofollow">hosting imagenes
 

Yo lo haria de esta manera

//Este es el script que va en un gameObject vacio que seria como el controlador del menu de toda la scena
 
// Creo las variables que son los dos botones
 
var BotonStart : GameObject;
var BotonSelectCar : GameObject;
// aqui creo las variables donde van a ir los materiales de cada boton
// es decir que cuando pongamos el mouse sobre el boton este cambia de material
var MaterialBStart : Material;
var MaterialBSelectCar : Material;
// estos son los materiales del boton cuando el mouse no este sobre ellos
var MaterialBStartNormal : Material;
var MaterialBSelectCarNormal : Material;
// Aqui creo las variables que me compreban si el mouse esta sobre los botones
 var ComprovadorCambioMaterialBotonStart : boolean;
 var ComprovadorCambioMaterialBotonSelectCar : boolean;
// Creo los comprovadores de cada boton que van a cer activados desde otro escript
 
var CBotonStart : boolean;
var CBotonSelectCar : boolean;
 
function Update () {
//Si pulsamos el boton start hacemos que nos carge la scena donde se comienza a jugar
 
if(CBotonStart == true) {
   Application.LoadLevel("ElNombre de tu nivel(scena)");
}


//Si pulsamos el boton select car la aplicacion nos enviara al level donde elegiremos el auto

if(BotonSelectCar == true) {
   Application.LoadLevel("La escena o nivel donde vas a seleccionar el auto");
}

//Aqui le decimos que si el ComprovadorCambioMaterialBotonStart es igual a true(Verdadero) el boton Start
//Cambia su material de su material normal a su material cuando esta Pulsado

if(ComprovadorCambioMaterialBotonStart == true) {
this.BotonStart.renderer.material = MaterialBStart;
}

// si no el material del boton start se queda como estaba

else {
this.BotonStart.renderer.material = MaterialBStartNormal;
}

//Aqui le decimos que si el ComprovadorCambioMaterialBotonSelectCar es igual a true(Verdadero) el boton Selectcar
//Cambia su material de su material normal a su material cuando esta Pulsado
   
if(ComprovadorCambioMaterialBotonSelectCar == true) {
   this.BotonSelectCar.renderer.material = MaterialBSelectCar;
   }
   
   // si no el material del boton select car  se queda como estaba
   
   else {
   this.BotonSelectCar.renderer.material = MaterialBSelectCarNormal;
   }
            

}

este es el que lo pondriamos en el boton start que es un cubo con la textura que diga "Start"

#pragma strict
// creo la variable que es gameObject vacio que es el que contiene el script(En este caso lo llame AyudaMenu)
var GameObjectControlador : GameObject;
 
//esta funcion es para que cuando el boton este sobre el boton(En este caso el boton Start) nos volvera
//true la variable creada en el script antes mencionado(AyudaMenu);
function OnMouseEnter () {
GameObjectControlador.GetComponent(AyudaMenu).ComprovadorCambioMaterialBotonStart = true;
}

   // esta funcion es para que cundo le demos clic izquierdo del raton en el boton
//nos volvera
//true la variable creada(CBotonStart) en el script antes mencionado(AyudaMenu);
 
function OnMouseDown() {
   GameObjectControlador.GetComponent(AyudaMenu).CBotonStart = true;
   }
   
   // Esta funcion hace que cuando  salga el mouse del boton nos vuelve false(Falso) la variable ComprovadorCambioMaterialBotonStart
   //de  nuestro script original que es el ayuda script
   function OnMouseExit() {
   GameObjectControlador.GetComponent(AyudaMenu).ComprovadorCambioMaterialBotonStart = false;
   }
      


y este es el que pondriamos en el boton select car el cual nos enviaria a otra scena la cual es donde elegiriamos  nuestro coche

// creo la variable que es gameObject vacio que es el que contiene el script(En este caso lo llame AyudaMenu)
var GameObjectControlador : GameObject;
 
//esta funcion es para que cuando el boton este sobre el boton(En este caso el boton select car) nos volvera
//true la variable creada en el script antes mencionado(AyudaMenu);
function OnMouseEnter () {
GameObjectControlador.GetComponent(AyudaMenu).ComprovadorCambioMaterialBotonSelectCar = true;
}

// esta funcion es para que cundo le demos clic izquierdo del raton en el boton
//nos volvera
//true la variable creada(CBotonSelectCar) en el script antes mencionado(AyudaMenu);
function OnMouseDown() {
   GameObjectControlador.GetComponent(AyudaMenu).CBotonSelectCar = true;
   }
   
   // Esta funcion hace que al salir el mouse del boton nos vuelve false(Falso) la variable ComprovadorCambioMaterialBotonSelectCar
   //de  nuestro script original que es el ayuda script
   
   function OnMouseExit() {
   GameObjectControlador.GetComponent(AyudaMenu).ComprovadorCambioMaterialBotonSelectCar = false;
   }
      


y eso es todo,  se que es un poco basico por que son solo dos botones, pero espero que igual te sirva
 
 
 
 
si quieres algo mas mandame un mensaje privado

esto seria lo basico con respecto a lo que tu quieres hacer, pero puede ser una buena base para comenzar
 
lo que tu quieres lograr es bastante complejo y yo puedo ayudarte a lograrlo

Febrero 22, 2014, 09:36:12 AM #3 Ultima modificación: Febrero 22, 2014, 09:36:46 AM por Jose134
mmm weno lo primero te deberias ver un buen tutorial de los GUI (te lo explicaria yo pero no los controlo muy bien) antes de que cambiase en unity spain el diseño habia un tutorial muy bueno de como usarlos pero ahora no lo encuentro.
 
despues en cuanto a las piezas son GameObjects diferentes que se activan y se desactivan, es decir tu tienes el coche y las piezas por separado.
 
el segundo ejemplo es mas complicado pero el primero te lo podria lograr (sin GUI) usando botones que sean objetos y haciendo algo mas o menos asi
 
Script de cada boton

var activado : boolean = false;
function OnMouseDown () {
    if(activado == false){
        activado = true;
    }
    else{
        activado = false;
    }
}

y ahora un script mas grande que seria el principal por decirlo de alguna manera

var boton1 : GameObject;
var pieza1 : GameObject;
var boton2 : GameObject;
var pieza2 : GameObject;
function Start () {
    pieza1.setActive = false;
    pieza2.setActive = false;
}
 
function Update () {
    var boton1 : activado = boton1.GetComponent(nombredelscriptanterior);
    if(boton1.activado == true){
        pieza1.setActive = true
    }
    else{
        pieza1.setActive = false;
    }
   
    var boton2 : activado = boton2.GetComponent(nombredelscriptanterior);
    if(boton2.activado == true){
        pieza2.setActive = true
    }
    else{
        pieza2.setActive = false;
    }
}

seria algo mas o menos asi suerte

Wow de vera que me están ayudando. Y si nos unimos  se que podemos sacar algo grande de mi prollecto  como ella les dije soy un buen modelador no programado. Ajajja si sirve de. Algo tengo algunos asset  pritata como por ejemplo unitycar2.2 pro. Su configuración para mi es la mejor.
Tengo el daikonGUI que es súper bueno pero a la ves súper avansado y complicado ajajajajja
Tengo el  roadtools tengo el eddys vehicle  y varios mas. Pero son piratas. Ya que no tengo pasta para eso soy padre y el unity es mi jobi al igual que Need for speed. Y el warface saludos y gracias a los 2. Que respuesta dieron rápidamente. Cualquier duda escrivo por aquí

Cita de: Sr Alesteban date=1393035369Yo lo haria de esta manera

//Este es el script que va en un gameObject vacio que seria como el controlador del menu de toda la scena
 
// Creo las variables que son los dos botones
 
var BotonStart : GameObject;
var BotonSelectCar : GameObject;
// aqui creo las variables donde van a ir los materiales de cada boton
// es decir que cuando pongamos el mouse sobre el boton este cambia de material
var MaterialBStart : Material;
var MaterialBSelectCar : Material;
// estos son los materiales del boton cuando el mouse no este sobre ellos
var MaterialBStartNormal : Material;
var MaterialBSelectCarNormal : Material;
// Aqui creo las variables que me compreban si el mouse esta sobre los botones
 var ComprovadorCambioMaterialBotonStart : boolean;
 var ComprovadorCambioMaterialBotonSelectCar : boolean;
// Creo los comprovadores de cada boton que van a cer activados desde otro escript
 
var CBotonStart : boolean;
var CBotonSelectCar : boolean;
 
function Update () {
//Si pulsamos el boton start hacemos que nos carge la scena donde se comienza a jugar
 
if(CBotonStart == true) {
   Application.LoadLevel("ElNombre de tu nivel(scena)");
}


//Si pulsamos el boton select car la aplicacion nos enviara al level donde elegiremos el auto

if(BotonSelectCar == true) {
   Application.LoadLevel("La escena o nivel donde vas a seleccionar el auto");
}

//Aqui le decimos que si el ComprovadorCambioMaterialBotonStart es igual a true(Verdadero) el boton Start
//Cambia su material de su material normal a su material cuando esta Pulsado

if(ComprovadorCambioMaterialBotonStart == true) {
this.BotonStart.renderer.material = MaterialBStart;
}

// si no el material del boton start se queda como estaba

else {
this.BotonStart.renderer.material = MaterialBStartNormal;
}

//Aqui le decimos que si el ComprovadorCambioMaterialBotonSelectCar es igual a true(Verdadero) el boton Selectcar
//Cambia su material de su material normal a su material cuando esta Pulsado
   
if(ComprovadorCambioMaterialBotonSelectCar == true) {
   this.BotonSelectCar.renderer.material = MaterialBSelectCar;
   }
   
   // si no el material del boton select car  se queda como estaba
   
   else {
   this.BotonSelectCar.renderer.material = MaterialBSelectCarNormal;
   }
            

}

este es el que lo pondriamos en el boton start que es un cubo con la textura que diga "Start"

#pragma strict
// creo la variable que es gameObject vacio que es el que contiene el script(En este caso lo llame AyudaMenu)
var GameObjectControlador : GameObject;
 
//esta funcion es para que cuando el boton este sobre el boton(En este caso el boton Start) nos volvera
//true la variable creada en el script antes mencionado(AyudaMenu);
function OnMouseEnter () {
GameObjectControlador.GetComponent(AyudaMenu).ComprovadorCambioMaterialBotonStart = true;
}

   // esta funcion es para que cundo le demos clic izquierdo del raton en el boton
//nos volvera
//true la variable creada(CBotonStart) en el script antes mencionado(AyudaMenu);
 
function OnMouseDown() {
   GameObjectControlador.GetComponent(AyudaMenu).CBotonStart = true;
   }
   
   // Esta funcion hace que cuando  salga el mouse del boton nos vuelve false(Falso) la variable ComprovadorCambioMaterialBotonStart
   //de  nuestro script original que es el ayuda script
   function OnMouseExit() {
   GameObjectControlador.GetComponent(AyudaMenu).ComprovadorCambioMaterialBotonStart = false;
   }
      


y este es el que pondriamos en el boton select car el cual nos enviaria a otra scena la cual es donde elegiriamos  nuestro coche

// creo la variable que es gameObject vacio que es el que contiene el script(En este caso lo llame AyudaMenu)
var GameObjectControlador : GameObject;
 
//esta funcion es para que cuando el boton este sobre el boton(En este caso el boton select car) nos volvera
//true la variable creada en el script antes mencionado(AyudaMenu);
function OnMouseEnter () {
GameObjectControlador.GetComponent(AyudaMenu).ComprovadorCambioMaterialBotonSelectCar = true;
}

// esta funcion es para que cundo le demos clic izquierdo del raton en el boton
//nos volvera
//true la variable creada(CBotonSelectCar) en el script antes mencionado(AyudaMenu);
function OnMouseDown() {
   GameObjectControlador.GetComponent(AyudaMenu).CBotonSelectCar = true;
   }
   
   // Esta funcion hace que al salir el mouse del boton nos vuelve false(Falso) la variable ComprovadorCambioMaterialBotonSelectCar
   //de  nuestro script original que es el ayuda script
   
   function OnMouseExit() {
   GameObjectControlador.GetComponent(AyudaMenu).ComprovadorCambioMaterialBotonSelectCar = false;
   }
      


y eso es todo,  se que es un poco basico por que son solo dos botones, pero espero que igual te sirva
si quieres algo mas mandame un mensaje privado
Hermano esto me. Viene de maravilla lo. Tengo una duda  yo se que la variable true es la que activa los materiales.  Pero realmente  lo que quiero es que me permita por ejemplo canviarle la defensa frontal al vehículo ya que lo tengo con 5  tipos de defensa frontal entiendes amigo gracias de antemano

Octubre 31, 2015, 03:31:26 PM #6 Ultima modificación: Octubre 31, 2015, 07:44:06 PM por Leo
Linea original:

this.BotonStart.renderer.material = MaterialBStart;

linea cambiada por mi:

this.BotonStart.GetComponent<Renderer>().material = MaterialBStart;
Buenas probe los dos scripts y ninguno me sirve en unity 5.2.0f3 me tira un error que dice: UnityEngine.GameObject.renderer is obsolete.luego me dice que lo cambie por :Getcomponet<Renderer>() instead.lo cambio y me tira otro error :Salomejor es que lo ando poniendo mal espero que alguien me pueda ayudar, desde ya gracias

Vaya tela, no leí este hilo en su momento pero que poco esfuerzo por respetar la gramática. Ninguno somos perfectos y podemos equivocarnos de vez en cuando, pero si no respetamos un mínimo las normas llega un momento muy complicado de entendernos incluso entre hablantes hispanos.Lo que puedes hacer Leo es asignar una variable publica de tipo Renderer y desde el inspector arrastras tu Renderer y ya lo usas.Luego dices que te da otro error, pero si no nos dices cual es no podemos ayudarte. 

Octubre 31, 2015, 07:35:19 PM #8 Ultima modificación: Octubre 31, 2015, 08:28:22 PM por Leo
la cosa es que por lo visto el unity lo flipo un poco pero por lo visto lo autoarreglo solo al rato no me digas como pero bueno se que me añadio al script esta linela unica diferencia que veo es un . antes de <Renderer>
this.BotonStart.GetComponent.<Renderer>().material = MaterialBStart;
la cosa es q me fue mas dificil saber donde iba cada script,  y cuando al final logre encontrar su lugar le doy al play y me cierra el unity ya me dije bueno pues aver q ago hora por q nome tira ningun erro :S si alguno pudiera ayudarme con la ubicacion exacta de los script estos o con un script similaryo solo lo quiero para que cuando yo le de a un boton me haga un cambio de ruedas a un coche por si ahi otro mas facil o mas simple seria aun mejor un saludo

[quote author=mrpacogp" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="10319" data-ipsquote-contentcommentid="122853 date=1446309433]Vaya tela, no leí este hilo en su momento pero que poco esfuerzo por respetar la gramática. Ninguno somos perfectos y podemos equivocarnos de vez en cuando, pero si no respetamos un mínimo las normas llega un momento muy complicado de entendernos incluso entre hablantes hispanos.Lo que puedes hacer Leo es asignar una variable publica de tipo Renderer y desde el inspector arrastras tu Renderer y ya lo usas.Luego dices que te da otro error, pero si no nos dices cual es no podemos ayudarte. [/quote]La siguiente es mejor. Aumentando densidad por cm2.

Etiquetas: