|
I am trying to move a gameObject by touch. But no matter where I touch the object zooms to the right. I have asked someone with more experienced than me in unity and he has no idea why it isn't working. I also noticed that i had to set all the variable's values manually in the inspector.
(comments are locked)
|
|
Input.mousePosition returns ScreenCoordinates in pixels. Those are always > 0. So the x value of your velocity vector (the one you use to translate) will always be > 0 hence you move to the right. What you have to do is convert the ScreenCoordinates to WorldCoordinates. You can do that using Camera.ScreenToWorldPoint. I have done a lot of editing and have come up with this:
var moveSpeed : int = 10;
var mousePos : Vector3;
function Update () {
transform.position.z = 2;
mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if(Input.GetMouseButtonDown(0)) {
transform.Translate (Vector3 (10, 9, 2));
}
}
However when i click the object moves randomly around the screen. I have consistently encountered this problem when trying to translate my object to a Vector3.
Mar 14 '12 at 01:54 PM
MithosAnnar
It seems like given that code it would translate the object (10,9,2) no matter where you clicked, now wouldn't it?
Mar 14 '12 at 03:11 PM
mpavlinsky
@mpavlinsky, No. It doesn't even translate there. when I tell it to move to (10, 9, 2) it moves where ever it wants to. And I have no idea why.
Mar 14 '12 at 03:33 PM
MithosAnnar
Is it a problem with transform.Translate? I can't translate to anywhere I specify. Let alone my mouse position!
Mar 14 '12 at 03:35 PM
MithosAnnar
Translate moves the object by whatever you pass in, not to it. This is my understanding from the script reference at least, I have never actually used this function. You probably want transform.position = whatever;
Mar 14 '12 at 03:47 PM
mpavlinsky
(comments are locked)
|

I imported meshes from silo.