- Home /
calculating my position from another object
I want to use another object and be an exact distance away from it.
What I want basically is my position to be +2 on the y axis alongside the other object
I raycast down, to see where the object is (in this time the object itself is falling) when it reaches it I want it to take it's place +2 on the y axis from the object it's raycasting on
Here is what I have so far
void FixedUpdate(){
RaycastHit hit;
Vector3 otherObjectPosition;
//Vector3 direction = transform.TransformDirection(-Vector3.up);
if (Physics.Raycast(transform.position, -Vector3.up, out hit, 2, ~layerToIgnore)){
otherObjectPosition = hit.collider.gameObject.transform.position;
Vector3 temp = transform.position;
// transform.position.y = otherObjectPosition.y -= -2;
temp.y = otherObjectPosition.y -= 2;
} else {
MoveDown();
}
}
public void MoveDown(){
transform.Translate(Vector3.down * Time.deltaTime, Space.World);
}
Can someone help me with this because it isn't doing what I'm expecting to do and I can't seem to get it to work.
Thanks,
Jan Julius.
Answer by RafalDorsz · Sep 15, 2014 at 10:24 AM
I'm assuming the raycasting itself works correctly.
There are 2 problems here:
// transform.position.y = otherObjectPosition.y -= -2;
You can't change just one part of a transform.position like that, you can only get its value; and second, I don't know why you're trying to update otherObjectPosition.y by subtracting -2 from it and only then passing this to your transform position, when you just want to change your transform.position.
so this should work:
Vector3 temp;
temp = new Vector3(otherObjectPosition.x, otherObjectPosition.y+2, otherObjectPosition.z);
this.transform.position = temp;
What it does it creates a new Vector3 with all 3 coordinates set to the other object's position in X and Z axes, and +2 its Y axis position.
Alternatively you could just take the other object's position and add a vector to it, like:
this.transform.position = otherObjectPosition + new Vector3(0.0f, 2.0f, 0.0f);
That is if I understood correctly what it is you're trying to achieve.
Hope it helps
Hello RafalDorsz,
Thanks for the answer, this was what I was looking for I appreciate your answer and have learned from it. :)
Thanks!
Jan Julius.
Your answer
Follow this Question
Related Questions
Negative Positions Breaks Raycasts 1 Answer
NullReferenceException when using raycast 1 Answer
Trouble with raycasting 1 Answer
transform.position.y and x or z + 1? 0 Answers