Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Abramelin en Noviembre 24, 2015, 04:42:17 AM

Título: SOLUCIONADO (duda de novato) transform.position a target solo x,z
Publicado por: Abramelin en Noviembre 24, 2015, 04:42:17 AM
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?
Título: SOLUCIONADO (duda de novato) transform.position a target solo x,z
Publicado por: NicolasProner en Noviembre 24, 2015, 07:02:56 AM
Prueba esto:
var target : Transform;

function Update(){

transform.position = new Vector3(target.x,0,target.z);
//No lo prove solo intento ayudar
}
Título: SOLUCIONADO (duda de novato) transform.position a target solo x,z
Publicado por: mrpacogp en Noviembre 24, 2015, 11:15:07 AM
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
}
Título: SOLUCIONADO (duda de novato) transform.position a target solo x,z
Publicado por: brok en Noviembre 24, 2015, 11:58:17 AM
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
Título: SOLUCIONADO (duda de novato) transform.position a target solo x,z
Publicado por: Abramelin en Noviembre 24, 2015, 07:17:30 PM
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?   
Título: SOLUCIONADO (duda de novato) transform.position a target solo x,z
Publicado por: Caesar en Noviembre 24, 2015, 07:38:38 PM
var target : Transform;

function Update(){

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

}
Título: SOLUCIONADO (duda de novato) transform.position a target solo x,z
Publicado por: ACarranza en Noviembre 24, 2015, 07:40:10 PM
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     
Título: SOLUCIONADO (duda de novato) transform.position a target solo x,z
Publicado por: Abramelin en Noviembre 24, 2015, 07:59:42 PM
 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 ACarranza voy a probar tu codigo ahora mismo, gracias.
eature=oembed" allowfullscreen="true" frameborder="0" height="270" width="480">
Título: SOLUCIONADO (duda de novato) transform.position a target solo x,z
Publicado por: brok en Noviembre 24, 2015, 08:01:47 PM
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);
       
    }
 
Título: SOLUCIONADO (duda de novato) transform.position a target solo x,z
Publicado por: Abramelin en Noviembre 24, 2015, 08:09:47 PM
Solucionado, el codigo de ACarranza va fino. Gracias a todos.