function ClosestPointOnBounds (position : Vector3) : Vector3
Description
The closest point to the bounding box of the attached colliders.
This can be used to calculate hit points when applying explosion damage.
Or calculating explosion forces that act on a point on the surface of the rigidbody
var hitPoints :
float = 10.0;
function ApplyHitPoints (explosionPos :
Vector3, radius :
float) {
var closestPoint :
Vector3 = rigidbody.ClosestPointOnBounds(explosionPos);
var distance :
float =
Vector3.Distance(closestPoint, explosionPos);
var damage :
float = 1.0 -
Mathf.Clamp01(distance / radius);
damage *= 10;
hitPoints -= damage;
}
using UnityEngine;
using System.Collections;
public class example :
MonoBehaviour {
public float hitPoints = 10.0F;
void ApplyHitPoints(
Vector3 explosionPos,
float radius) {
Vector3 closestPoint = rigidbody.ClosestPointOnBounds(explosionPos);
float distance =
Vector3.Distance(closestPoint, explosionPos);
float damage = 1.0F -
Mathf.Clamp01(distance / radius);
damage *= 10;
hitPoints -= damage;
}
}
import UnityEngine
import System.Collections
class example(
MonoBehaviour):
public hitPoints as single = 10.0F
def ApplyHitPoints(explosionPos as
Vector3, radius as single):
closestPoint as
Vector3 = rigidbody.ClosestPointOnBounds(explosionPos)
distance as single =
Vector3.Distance(closestPoint, explosionPos)
damage as single = (1.0F -
Mathf.Clamp01((distance / radius)))
damage *= 10
hitPoints -= damage