- Home /
How can Player or Enemy Generate Force to Push Rigidbodies?
Simply walking by an rigidbody will push it if the rigidbody mass is surpassable by the walking force of the character. (or the player in an fps)
But what if our player/character wants to push a very heavy object that he can't just push by walking through it.
Like for example a car. I want the player to GENERATE FORCE by repeately pusshing some button or repeately moving the mouse up and down or something to simulate real life creating of muscle force.
But that means i would have to tell the OBJECT THAT I WANT TO PUSH that i'm generating force and my force is increasing so it should start reacting to it by roling over or something matching the generated force.
Is thta poosible?
to recap: =====> Can the player or Character geenerate extra force(more than just their mass) and the Rigidbodies should respond to it.
Answer by clunk47 · Sep 04, 2013 at 04:18 AM
Let's start by simply getting the player to push rigidbodies correctly. If you need help with generating force by button press, ask this as a separate question. Asking one question at a time will keep your question from being closed or being downvoted.
using UnityEngine;
using System.Collections;
public class PushRigidbodies : MonoBehaviour
{
Rigidbody body;
Vector3 pushDir;
float power = 2.0f;
float minPower = 0.5f;
float maxPower = 3.0f;
void OnControllerColliderHit(ControllerColliderHit hit)
{
if(hit.rigidbody)
body = hit.collider.attachedRigidbody;
if (body == null || body.isKinematic)
return;
if (hit.moveDirection.y < -0.3F)
return;
if(body != null)
{
pushDir = new Vector3(hit.moveDirection.x, 0, hit.moveDirection.z);
body.velocity = pushDir * power;
}
}
}
Your answer
Follow this Question
Related Questions
How to hit gameobjects to go into the opposite direction of hit? 1 Answer
How can you apply force or set the velocity of a rigidbidy on local axis? 1 Answer
AddForce doesn't work when used with velocity 3 Answers
Rigidbody Character 1 Answer
Reading the forces applied on a freezed rigidbody(solved) 1 Answer