CharacterControllerを使用している場合に、物理オブジェクトに作用出来るようにするスクリプト

CharacterControllerは便利ですが、物理オブジェクトと作用できない、、、

ということで、ここスクリプトを参考に少し変更。

using UnityEngine;
using System.Collections;

public class PhysicsAffecter : MonoBehaviour {
	
    public float pushPower = 1.0F;

    void OnControllerColliderHit(ControllerColliderHit hit) {
        Rigidbody body = hit.collider.attachedRigidbody;
        if (body == null || body.isKinematic)
            return;
        
        Vector3 pushDir = new Vector3(hit.moveDirection.x, hit.moveDirection.y, hit.moveDirection.z).normalized;
        pushDir.x *= -Physics.gravity.x;
        pushDir.y *= -Physics.gravity.y;
        pushDir.z *= -Physics.gravity.z;
        body.AddForceAtPosition(pushDir * pushPower, transform.position);
        //body.velocity = pushDir * pushPower;
    }
}