- Home /
Combine iTween with physics acceleration
I am trying to combine iTween with physics acceleration.
Here is the top view of the path. The brown rectangle is made by a cube GameObject
, with an iTweenPath
component attached (4 nodes). The path is named Path1
. On the left, there is a sphere (may not be seen clearly), which acts as the Actor, with RigidBody
attached (mass = 3), was put few units above the floor.
Then, I assigned a script to the Actor, which is:
void OnCollisionEnter(Collision collison) {
iTween.MoveTo(gameObject, iTween.Hash("path", iTweenPath.GetPath("Path1"), "time", 5));
}
when the ball hits the ground due to gravity, it triggers the iTween.MoveTo()
. The above works as expected.
However, I want to combine with my physics acceleration script, which is:
void FixedUpdate() {
rigidbody.AddForce(transform.forward * 5.0f, ForceMode.Acceleration);
}
However, iTween governs the movement, made the AddForce()
in FixedUpdate()
no effect at all. How can I combine these two?
It is unclear to me in what way you want to combine the two. I'm going to assume you want to move along the path but at a rate expected by the rigidbody.AddForce() rather than a fixed time. And it is unclear to me what happens when you end up at the end of the path.
I'm going to suggest you explore iTween.PutOnPath() and iTween.PointOnPath(). You may have to simulate the applying of force, but these two give you the control to put the point at a specific percentage along the path.
Yes, I want to use the dynamic speed given by rigidbody.AddForce()
rather than fixed time. So, you mean that the physics cannot be merged with iTween, and I have to calculate the speed by myself from time to time?
"So, you mean that the physics cannot be merged with iTween, and I have to calculate the speed by myself from time to time?"
"cannot" is a strong word, but you would have to jump through some hoops. For example you could calculate at each fixed update how far the object as traveled since the last update, calculate what percentage that distance is along the path, then use iTween.PutOnPath() to put the object at that percentage. This is untested territory for me, so it is just a theory. But I expect that you will get a better result by not using a Rigidbody for this calculation and doing the math on your own based on percentage rather than distance.
that's a nice suggestion. I will do some tests on your theory.
Your answer
Follow this Question
Related Questions
how get bow to add more force over time 0 Answers
Jumping with rigid body3d 1 Answer
Consistent AddForce distance/direction 2 Answers
Distribute terrain in zones 3 Answers
Why wont my character jump? (using rigidbody and addForce) 1 Answer