Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: jorgebes en Septiembre 08, 2015, 10:16:35 PM

Título: Fallo con script para subir y bajar coche (u otro vehículo)
Publicado por: jorgebes en Septiembre 08, 2015, 10:16:35 PM
Por favor necesito ayuda, soy un poco torpe (y nuevo) programando y he hecho un script  para subir y bajar de un coche (u otro vehículo), y no va, pero no se que falla.¿ alguien podría decírmelo por favor?Es el siguiente (está en js) :var alladopuerta : boolean = false;
var conduciendo : boolean = false;
var persona : Transform;
var coche : Transform;
var puerta : Transform;
var puntosalida : Transform;
var camaracoche : Camera;
var camarapersona : Camera;
function Entrar()
        {
        if(alladopuerta){
            GetComponent.<GUIText>().text = "pulsa E para entrar";
        }
        }
function OnTriggerEnter(Player : Collider)
    {
    Debug.log("Trigger Enter");
    alladopuerta = true;
}
function OnTriggerExit(Player : Collider)
{
    Debug.log("Trigger Exit");
    alladopuerta = false;
}
function Update()
    {
    if(Input.GetbuttonDown("Use") && alladopuerta) {
        conduciendo = true;
    }
    if(conduciendo){
        persona.GameObject.SetActive(false);
        persona.GameObject.SetActive = false;
        // parent player to Exit Point
        persona.parent = puntosalida.transform;
        persona.transform.localPosition = Vector3(-1.5,0,0);
        // parent PlayerParent to car
        puntosalida.parent = coche.transform;
        puntosalida.transform.localPosition = Vector3(-0.3,1.5,-0.65); //Driverside exit point, adjust accordingly per vehicle.
        // GameObject.Find("VehicleObjectName").GetComponent("DrivingScriptHere").enabled=true;
        GameObject.Find("Car").GetComponent("CarController").enabled=true;
        GameObject.Find("Car").GetComponent("CarUserControl").enabled=true; //Enables the script component to operate Vehicle.
        camarapersona.enabled = false; //Disables the playerCamera
        camaracoche.enabled = true; //Enables the carCamera
    }else{    
        // make character visible again
  persona.GameObject.SetActive(true);
  persona.GameObject.SetActive = true;
  // unparent player from everything
  persona.transform.parent = null;
  // exitPoint.parent = doorTriggerLeft.transform;
  // parent Exit Point to car gameobject
  puntosalida.parent = coche.transform;
  // GameObject.Find("VehicleObjectName").GetComponent("DrivingScriptHere").enabled=false;
  GameObject.Find("Car").GetComponent("CarController").enabled=false; //Disables the script component to park Vehicle.
  GameObject.Find("Car").GetComponent("CarUserControl").enabled=false;
  camarapersona.enabled = true; //re-enables player camera
  camaracoche.enabled = false; //disables car camera
}
  if(Input.GetbuttonDown("Use") && conduciendo) {
        conduciendo = false; }
        }    GRACIAS por adelantado, un saludo 
EntrarVehiculos.js
Título: Fallo con script para subir y bajar coche (u otro vehículo)
Publicado por: Oak Human Flesh en Septiembre 10, 2015, 04:43:51 PM
Pareces estar peleado con el manual de Unity
Título: Fallo con script para subir y bajar coche (u otro vehículo)
Publicado por: jorgebes en Septiembre 20, 2015, 01:29:42 PM
He cambiado eso pero sigue sin ir 
Título: Fallo con script para subir y bajar coche (u otro vehículo)
Publicado por: iRobb en Septiembre 20, 2015, 02:04:35 PM
[quote author=jorgebes" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="22232" data-ipsquote-contentcommentid="112031 date=1442748582]He cambiado eso pero sigue sin ir [/quote]Si tienes que cambiar un montón de cosas. Lo que te dice @Oak Human Flesh es que con la cónsola del Debug depures donde tienes los errores y lo comentes. No que digas que no funciona y ya está. Pero si te quieren ayudar!
Título: Fallo con script para subir y bajar coche (u otro vehículo)
Publicado por: Oak Human Flesh en Septiembre 21, 2015, 01:42:16 AM
Cita de: jorgebes date=1442748582" data-ipsquote="">He cambiado eso pero sigue sin ir /quote]Entonces no comprendes lo que te explique, pues es simplemente que aprendas a usar la consola de errores de Unity y el manual de Unity como unas potentes herramientas, luego también puedes poner cada error para solucionarlo uno a uno :D Título: Fallo con script para subir y bajar coche (u otro vehículo)
Publicado por: jorgebes en Septiembre 21, 2015, 04:18:29 PM
Vale gracias que no sabia depurar 
Título: Fallo con script para subir y bajar coche (u otro vehículo)
Publicado por: Oak Human Flesh en Septiembre 21, 2015, 05:03:31 PM
[quote author=jorgebes" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="22232" data-ipsquote-contentcommentid="112312">Vale gracias que no sabia depurar [/quote]La depuración del código es un tema muy importante,  saber como hacerlo puede ayudar a sacar muchos proyectos o soluciones adelante. Aqui otra línea erroea:persona.GameObject.SetActive (true);Es así:persona.gameObject.SetActive (true);Esta es la explicación,  al referirse al GameObject que posee el componente se debe acceder con la palabra clave gameObject. Todos los componentes pertenecen a un gameObject.En este caso persona es una variable que es usada para almacenar un componente tipo Transform. Esta variable supongo es asignada en el inspector de Unity.Para el caso de clase Transform el gameObject es un miembro heredado.Ref: Título: Fallo con script para subir y bajar coche (u otro vehículo)
Publicado por: jorgebes en Septiembre 22, 2015, 09:58:36 PM
Ya va muchas gracias (con coches aparcados no va, pero me las apañare) llevaba un tiempo estancado ahí
Título: Fallo con script para subir y bajar coche (u otro vehículo)
Publicado por: iRobb en Septiembre 22, 2015, 10:01:51 PM
Pero, y porqué no cuentas como lo has solventado?
Título: Fallo con script para subir y bajar coche (u otro vehículo)
Publicado por: jorgebes en Septiembre 23, 2015, 08:47:14 PM
Cambié lo de los gameobject y me di cuenta que el fallo era que estaba mal escrito la parte de desactivar el personaje y activar la cámara del coche (pero el script de conducir no se activa, tiene que estar siempre activo, por eso los aparcados no van)
Título: Fallo con script para subir y bajar coche (u otro vehículo)
Publicado por: jorgebes en Septiembre 30, 2015, 10:11:14 PM
Aquí está terminado y probado y va con todo  tipo de coches,OJO, que si usais otro script de conducir tendréis que cambiarlo en las partes que se indica, gracias por la ayuda.var alladopuerta : boolean = false;
var conduciendo : boolean = false;
var persona : Transform; //personaje
var coche : Transform; //un empty con los scripts de conducir y el modelo del coche dentro
var puerta : Transform; //cubo modo trigger
var puntosalida : Transform; //empty
var camaracoche : Camera;     
var camarapersona : Camera;
function Start(){
coche.transform.GetComponent("CarController").enabled=false; //Desactiva el script de conducir.
  coche.transform.GetComponent("CarUserControl").enabled=false;
  camaracoche.enabled = false; //descativa la camara del coche
  }
function Entrar()
        {
        if(alladopuerta){
            GetComponent.<GUIText>().text = "pulsa E para entrar";
        }
        }
function OnTriggerEnter(Player : Collider)
    {
    Debug.Log("Trigger Enter");
    alladopuerta = true;
}
function OnTriggerExit(Player : Collider)
{
    Debug.Log("Trigger Exit");
    alladopuerta = false;
}
function Update()
    {
    if(alladopuerta){
            GetComponent.<GUIText>().text = "pulsa E para entrar";
    if(Input.GetButtonDown("Use")) {
        conduciendo = true;
        alladopuerta= false;
    }}
    if(conduciendo){
        persona.gameObject.SetActive(false);
        // parent player to Exit Point
        persona.parent = puntosalida.transform;
        persona.transform.localPosition = Vector3(-1.5,0,0);
        // parent PlayerParent to car
        puntosalida.parent = coche.transform;
        puntosalida.transform.localPosition = Vector3(-0.3,1.5,-0.65);
        // coche.transform.GetComponent("scriptconducir").enabled=true;
        coche.transform.GetComponent("CarController").enabled=true;
  coche.transform.GetComponent("CarUserControl").enabled=true;
        camaracoche.enabled = true; //Enables the carCamera
    }else if(Input.GetKeyDown("e")) {
  persona.gameObject.SetActive(true);
  persona.GameObject.SetActive = true;
  persona.transform.parent = null;  puntosalida.parent = coche.transform;
 
  coche.transform.GetComponent("CarController").enabled=false;
  coche.transform.GetComponent("CarUserControl").enabled=false;
  camarapersona.enabled = true;
  camaracoche.enabled = false;
}
  if(Input.GetKeyDown("r")) {
        conduciendo = false;
            
  persona.gameObject.SetActive(true);
 
  persona.transform.parent = null;
 
  puntosalida.parent = puerta.transform;coche.transform.GetComponent("CarController").enabled=false;
coche.transform.GetComponent("CarUserControl").enabled=false;
  camarapersona.enabled = true;
  camaracoche.enabled = false;
}
        } 
EntrarVehiculos.js