x


Push an object along a path?

I've read iTween is good for this but the only one i can find is to move it. I want my character to move say a boulder out of the way by pushing it, but only to a certain point? Like say the character pushes the boulder to the end point which then triggers an event of some kind because it's on top of a switch maybe? Just to give an example?

I'm not asking for like the whole move and push to an event just how to move say a boulder to a certain point that it stops moving?

more ▼

asked Apr 07 '11 at 03:57 PM

Matt 21 gravatar image

Matt 21
9 5 6 9

(comments are locked)
10|3000 characters needed characters left

2 answers: sort voted first

Um, a way to go about this...

Give the "boulder" a rigid body... And then add a collider that's attatched to it, so that when you move it, it only moves because of the physics, and stops when it hits the collider... Could be easy...

Alt: You can animate this... if player goes to spot A, and pushes F, then boulder rotates and moves ->>> if that makes sense.

more ▼

answered Apr 07 '11 at 04:01 PM

Justin Warner gravatar image

Justin Warner
6.3k 19 27 65

Give the "boulder" a rigid body... And then add a collider that's attatched to it

i can't get my head around that bit, i'm probably being a bit dozy but what do you mean?

Apr 07 '11 at 04:19 PM Matt 21

Well, the rigid body makes it effected by physics... So, if you do that, the ball will roll... So, I suggested add a collider that's a child, and so that while it's rolling, it knows when to stop bc that collider'll stop it.

Apr 07 '11 at 09:59 PM Justin Warner

I've got cubes set up so they move when pushed, but i still dont understand how the collider wil know when to stop it at a certain point?

Apr 07 '11 at 11:14 PM Matt 21

Alright... So, with this example, you can see, when the "player" pushes the "rock" (Sphere) it moves... you can easily do this in your game... I added a collider, but I don't think it helps much... Might actually hurt it haha. http://www.2shared.com/file/6CTk1ta9/TESTING_OTHERS.html

Apr 07 '11 at 11:36 PM Justin Warner
(comments are locked)
10|3000 characters needed characters left

You can use a distance check.

You need a few varaibles:

Vector3 targetPoint - The target in world space.

float actionDistance - How far the boulder needs to be from targetPoint before triggering the action. If you want the boulder to have to be in a specific spot set this equal to the boulder's radius

float radius - The radius of the boulder.

Here is some code

public void Move(Vector3 pushForce) {
        // First, update our position based on the push applyed by the player
        transform.position += playerPushForce * Time.deltaTime;
        // Find a vector going from the center of this boulder to the target point 
        Vector3 difference = targetPoint - transform.position;
        // If the distance is less than the actionDistance - radius, then we have a hit
        // (the dot product of a vector with its self is the squared magnitude of said vector)
        if (Vector3.Dot(difference, difference) < (actionDistance * actionDistance) - (radius * radius)) {
            // Hit it!
        }
    }
more ▼

answered Apr 07 '11 at 08:31 PM

Gabriel 4 gravatar image

Gabriel 4
57 10 11 18

I'm a complete begginner to all of this, i get the pplayer push force, but the vector difference i'm baffled by. No idea how to work this. Sorry.

Apr 07 '11 at 08:52 PM Matt 21

When you subtract v1 from v2 (v2 - v1) you get a new vector. This vector points from v2 to v1. http://www.sparknotes.com/testprep/books/sat2/physics/chapter4section3.rhtml

The difference vector is a vector pointing from the boulders position to the target position. (If you need to visualize it, try Debug.DrawLine())

We can use the length of this vector to determine how far the boulder is from it's target.

Apr 11 '11 at 06:31 PM Gabriel 4
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x3722
x1091
x426
x237
x70

asked: Apr 07 '11 at 03:57 PM

Seen: 1713 times

Last Updated: Apr 07 '11 at 08:04 PM