Catagories

Tuesday, 7 December 2010

Moving Rigid Body Objects

The following script will allow you to move objects set up as rigid bodys. Attach this script to your character, and any object which has the rigid body component added can me moved.

// this script pushes all rigidbodies that the character touches
var pushPower = 2.0;
var objectName;

function OnControllerColliderHit (hit : ControllerColliderHit) {
var body : Rigidbody = hit.collider.attachedRigidbody;
// no rigidbody
if (body == null || body.isKinematic)
return;

// We dont want to push objects below us
if (hit.moveDirection.y < -0.3)
return;

// Calculate push direction from move direction,
// we only push objects to the sides never up and down
var pushDir : Vector3 = Vector3 (hit.moveDirection.x, 0, hit.moveDirection.z);

// If you know how fast your character is trying to move,
// then you can also multiply the push velocity by that.

// Apply the push
body.velocity = pushDir * pushPower;

}

1 comment: