Added Dohya
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class PushPhysics : MonoBehaviour
|
||||
{
|
||||
// this script pushes all rigidbodies that the character touches
|
||||
float pushPower = 2.0f;
|
||||
void OnControllerColliderHit(ControllerColliderHit hit)
|
||||
{
|
||||
Rigidbody body = 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
|
||||
Vector3 pushDir = new 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.linearVelocity = pushDir * pushPower;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user