Noticias

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

SOLUCIONADO (duda de novato) transform.position a target solo x,z

Iniciado por Abramelin, Noviembre 24, 2015, 04:42:17 AM

Tema anterior - Siguiente tema
Noviembre 24, 2015, 04:42:17 AM Ultima modificación: Noviembre 24, 2015, 08:10:34 PM por Abramelin
tengo un objeto que quiero transformar su posicion a la posicion de un target, pero obviando Y, solo quiero mover X,Z.
var target : Transform;

function Update(){

transform.position = Vector3(target.x,0,target.z);

}
de esta forma no consigo que vaya a la posicion del target, solo lo he podido hacer así, pero me gustaría poder excluir la Y.
transform.position = target.transform.position;
he probado tambien con transform.x = target.transform.position; pero nada. ¿como sería de forma correcta lo que quiero hacer?

Prueba esto:
var target : Transform;

function Update(){

transform.position = new Vector3(target.x,0,target.z);
//No lo prove solo intento ayudar
}

Si por el contrario el ejey se encuentra en otra altura cambia el cero por la que sea, si va cambiando te recomiendo:
var target : Transform;

function Update(){

transform.position = new Vector3(target.x,transform.position.y,target.z);
//No lo prove solo intento ayudar
}

cuando utilizas un vector esa es la posicion que tiene que tener x,y,z digo yo asin lo entiendo yo.
var target : Transform;

function Update(){

transform.position = new Vector3(target,0,target);
//No lo prove solo intento ayudar
}
a lo mejor me equiboco

Pues he probado de las maneras que me habeis puesto aqui y no he conseguido que se mueva. Tanto:
transform.position = new Vector3(target,0,target); 
transform.position = new Vector3(target.x,transform.position.y,target.z);
¿que puede haber mal? seguro que es algo bastante sencillo de hacer pero no consigo dar con la tecla. La unica solucion que encuentro es
transform.position = target.transform.position;
pero se me queda semi enterrado en el suelo, porque el target tiene el 0 de su Y justo pegando al suelo... ¿existe otra funcion con la que se pueda hacer lo mismo? que no sea transform.position?   

var target : Transform;

function Update(){

transform.position = new Vector3(target.position.x,0,target.position.z);

}

esque estas fucionando C# y javascript en C# seria asi 
public Transform target;
private Transform thisobject;

// Use this for initialization
void Start () {
   thisobject = this.transform;
}

// Update is called once per frame
void Update () {
   ActualizarPosition ();
}

void ActualizarPosition(){
   Vector3 newposition = new Vector3 (target.position.x, thisobject.position.y, target.position.z);

   thisobject.position = newposition;

}
 y en JS :
public var target:Transform;
private var thisobject:Transform;

function Start () {
thisobject = this.transform;
}

function Update () {
ActualizarPosition();
}


function ActualizarPosition(){
var newposition:Vector3 = Vector3 (target.position.x, thisobject.position.y, target.position.z);

thisobject.position = newposition;

}
 el transform tiene como propiedad position, rotation, scale y puedes acceder a ellas , las 3 ocupan de un vector saludos     

Noviembre 24, 2015, 07:59:42 PM #7 Ultima modificación: Noviembre 24, 2015, 08:01:12 PM por Abramelin
 amplio un poco la informacion. me gustaría hacerlo en js, que me manejo mejor que en c#. este es el codigo entero del object que "sigue" al target: 
var target: Transform;
var Damping = 23.0;function Start(){transform.position = new Vector3 (target.x,0,target.z);}
function OnEnable(){var rotation = Quaternion.LookRotation(target.position - transform.position);
    transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * Damping);}
function Update () {transform.position = new Vector3 (target.x,transform.position.y,target.z);} y dejo un video con el problema: ***edit http://unityspain.com/profile/21887-acarranza/?do=hovercard&referrer=http%253A%252F%252Funityspain.com%252Ftopic%252F34505-duda-de-novato-transformposition-a-target-solo-xz%252F%253F_fromLogin%253D1%2526_fromLogout%253D1" title="Go to ACarranza's profile" href="<___base_url___>/profile/21887-acarranza/">ACarranza voy a probar tu codigo ahora mismo, gracias.
eature=oembed" allowfullscreen="true" frameborder="0" height="270" width="480">

Noviembre 24, 2015, 08:01:47 PM #8 Ultima modificación: Noviembre 24, 2015, 08:03:12 PM por brok
Aqui la solucion creo que es lo que quieres  en c#.
public Transform target ;

    float speed = 6f;
   
    void Start ()
    {
        transform.position = Vector3.Lerp(target.position, target.position, Time.deltaTime * speed);
       
    }
 

Solucionado, el codigo de ACarranza va fino. Gracias a todos.

Etiquetas: