unity判断点是否在长方体内部

复制代码
using UnityEngine;

public class CubeCheck : MonoBehaviour
{
    // 长方体的位置、旋转和尺寸
    public Vector3 position = new Vector3(0, 0, 0);
    public Quaternion rotation = Quaternion.identity;
    public Vector3 size = new Vector3(1, 1, 1);

    public Transform check;//需要检测的物体
    public bool isIn;
    
    // 长方体对象
    private Bounds cubeBounds;

    void Start()
    {
        // 创建长方体对象
        cubeBounds = new Bounds(position, size);
    }

    void Update() 
    {
        position = transform.position;
        rotation = transform.rotation;
        
        // 检查点是否在长方体内部
        Vector3 pointToCheck = check.position; // 替换为要检查的点的坐标

        // 逆旋转点
        Vector3 localPoint = Quaternion.Inverse(rotation) * (pointToCheck - position);

        // 检查逆旋转后的点是否在长方体内部
        bool isInside = cubeBounds.Contains(localPoint);

        // 输出结果
        if (isInside)
        {
            Debug.Log("点在长方体内部");
        }
        else
        {
            Debug.Log("点在长方体外部");
        }

        isIn = isInside;
    }
}
复制代码

 

posted @   三页菌  阅读(201)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2018-12-11 window server 搭建git服务器
点击右上角即可分享
微信分享提示