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
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">
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.