当该控制器在执行 Move 时撞到碰撞体时调用 OnControllerColliderHit。
这可用于在它们与该角色碰撞时推动对象。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
public float pushPower = 2.0F;
void OnControllerColliderHit(ControllerColliderHit hit) {
Rigidbody body = hit.collider.attachedRigidbody;
if (body == null || body.isKinematic)
return;
if (hit.moveDirection.y < -0.3F)
return;
Vector3 pushDir = new Vector3(hit.moveDirection.x, 0, hit.moveDirection.z);
body.velocity = pushDir * pushPower;
}
}