So here is my question. how do i get this to work for pushing another Character Controller for multiplayer?
var pushPower = 2.0;
var overallSpeed = 0;
var relativeSpeed = 0;
function Update() {
}
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;
// On collision, get speed of controller
var controller : CharacterController = GetComponent(CharacterController);
var overallSpeed = controller.velocity.magnitude;
// Get the Ratio for the Push Power. > overallSpeed = > Knock Back on Object
var pushPowerRatio = overallSpeed * 0.3;
// Apply the push, multiplied by pushPowerRatio
body.velocity = pushDir * pushPower * pushPowerRatio;
}