Version: 2020.3

Rigidbody.ClosestPointOnBounds

切换到手册
public Vector3 ClosestPointOnBounds (Vector3 position);

描述

与附加碰撞体的包围盒最接近的点。

// Subtract damage from a character's hit points when an
// explosion occurs.

using UnityEngine; using System.Collections;

public class ExampleClass : MonoBehaviour { public float hitPoints = 10.0F; public Rigidbody rb;

void Start() { rb = GetComponent<Rigidbody>(); }

void ApplyDamage(Vector3 explosionPos, float radius) { Vector3 closestPoint = rb.ClosestPointOnBounds(explosionPos); float distance = Vector3.Distance(closestPoint, explosionPos); float damage = 1.0F - Mathf.Clamp01(distance / radius); damage *= 10; hitPoints -= damage; } }