うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】球の内部に点が存在するかを判定する

using UnityEngine;
 
public static class MathUtil
{
    /// <summary>
    /// (x - a)^2 + (y - b)^2 + (z - c)^2 <= r^2 を計算
    /// </summary>
    /// <param name="targetPos">対象となる店</param>
    /// <param name="center">円の中心</param>
    /// <param name="radius">半径</param>
    /// <returns></returns>
    public static bool IsInSphere(Vector3 targetPos, Vector3 center, float radius)
    {
        var sum = 0f;
        for (var j = 0; j < 3; j++)
            sum += Mathf.Pow(targetPos[j] - center[j], 2);

        return sum <= Mathf.Pow(radius, 2);
    }
}