Jump to content
UnitySpain
Sign in to follow this  
Abramelin

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

Recommended Posts

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?

Edited by Abramelin

Share this post


Link to post
Share on other sites

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
}

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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?

 

 

Share this post


Link to post
Share on other sites

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 :) 

 

 

 

Share this post


Link to post
Share on other sites

 

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.

Edited by Abramelin

Share this post


Link to post
Share on other sites

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);
        
    }

 

Edited by brok

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...