Move GameObject along a line according to the players look direction

 0 I have two GameObjects: The Main Camera, which the player can rotate, and a box, which only moves in the z-axis. I need the box to always be in the Main Camera's forward position, and newer move away from it's line.I've tried to illustrate it: Additional information: I'm coding in C# and have tried different solutions with vectors, but just can't get my head around a solution. movego.png (6.3 kB) more ▼ asked Apr 18 '12 at 07:09 PM Kmulla 258 ● 1 ● 3 ● 8 add new comment (comments are locked) 10|3000 characters needed characters left ▼ Viewable by all users

 0 You can also use the Plane object so you have an infinite large "collider" plane.A mathematical plane is defined by it's normal vector and the distance from 0,0,0. You can create a plane be hand in the normal vector to define in which direction the plane should face and any point in world coordinates that is on the plane: ``````private Plane m_Plane; void Start() { // This plane will be at 0,0,20 and face towards the origin(0,0,0) m_Plane = new Plane(-Vector3.forward, new Vector3(0,0,20)); } //[...] Ray ray = Camera.main.ViewportPointToRay (new Vector3(0.5,0.5,0)); float dist; if (m_Plane.Raycast(ray, out dist)) { Vector3 hitPoint = ray.GetPoint(dist); // use it } ``````The plane object isn't a visual component. It's just the mathematical representation of a plane. more ▼ answered Apr 19 '12 at 11:44 AM Bunny83 45.2k ● 11 ● 49 ● 207 Thank you so much! This works exactly as intended, and it's so simple! Apr 19 '12 at 01:30 PM Kmulla add new comment (comments are locked) 10|3000 characters needed characters left ▼ Viewable by all users
 0 you can use a ray cast hitting an invisible collier which will act as your line and place the gameObject at the raycast contact point.for help more ▼ answered Apr 18 '12 at 08:33 PM TheDarkVoid 904 ● 12 ● 22 ● 28 This is the solution! Since there's a place where the line isn't straight, this would work great there too. I wasn't even aware that the Raycast had a point-function. Thank you :) … And it's a great excuse for finally learning how to use the layer masks! Apr 19 '12 at 09:54 AM Kmulla add new comment (comments are locked) 10|3000 characters needed characters left ▼ Viewable by all users
 0 Just use the camera transforms forward direction and zero out the y axis. that's important because the camera always "looks down" on the player, but you don't want to move in that direction (cause you'd go through the ground :P) ``````Vector3 forward = Camera.main.transform.foward; forward.y = 0f; // Move the box transform.Translate(forward * speed * Time.deltaTime); `````` more ▼ answered Apr 18 '12 at 08:54 PM Tseng 1.5k ● 6 ● 8 ● 23 This solution needs a few adjustments to work, like locking the x-axis as well :) When I tried it out, the box kept moving in the direction the player was looking, and I couldn't think of a quick solution to make it stop at the wanted place, but I'm sure it would work with additional coding! … nevertheless kingk614's solution is the answer to this problem AND another I wasn't looking forward to. But thanks anyway :) Apr 19 '12 at 10:00 AM Kmulla add new comment (comments are locked) 10|3000 characters needed characters left ▼ Viewable by all users

By Email:

Topics:

x4155
x1278
x576
x206

asked: Apr 18 '12 at 07:09 PM

Seen: 1292 times

Last Updated: Apr 19 '12 at 02:09 PM