Noticias

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

Fallo con script para subir y bajar coche (u otro vehículo)

Iniciado por jorgebes, Septiembre 08, 2015, 10:16:35 PM

Tema anterior - Siguiente tema
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 
http://unityspain.com/applications/core/interface/file/attachment.php?id=8413">EntrarVehiculos.js

Septiembre 10, 2015, 04:43:51 PM #1 Ultima modificación: Septiembre 10, 2015, 04:51:18 PM por Oak Human Flesh
Pareces estar peleado con el manual de Unity

Bye Bye




[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!

Septiembre 21, 2015, 01:42:16 AM #4 Ultima modificación: Septiembre 21, 2015, 01:43:56 AM por Oak Human Flesh
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

Bye Bye




[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:http://docs.unity3d.com/ScriptReference/Transform.html" rel="external nofollow date=1442845109]http://docs.unity3d.com/ScriptReference/Transform.html

Bye Bye



Ya va muchas gracias (con coches aparcados no va, pero me las apañare) llevaba un tiempo estancado ahí


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)

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;
}
        } 
http://unityspain.com/applications/core/interface/file/attachment.php?id=8512">EntrarVehiculos.js

Etiquetas: