首页 > 其他分享 >unity判断点是否在长方体内部

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

时间:2023-12-11 18:33:25浏览次数:27  
标签:cubeBounds 判断 Vector3 unity position rotation 长方体 public

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;
    }
}

 

标签:cubeBounds,判断,Vector3,unity,position,rotation,长方体,public
From: https://www.cnblogs.com/sanyejun/p/17895109.html

相关文章

  • unity Transform 的 Rotate(xAngle: float, yAngle: float, zAngle: float, relativeT
    publicclassdemoword2:MonoBehaviour{//StartiscalledbeforethefirstframeupdatevoidStart(){//transform.Rotate(60,70,80,Space.World);//eulerAngles.z度围绕z轴,eulerAngles.x度围绕x轴,eulerAngles.y度围绕y轴//......
  • 拓扑排序实现循环依赖判断
    本文记录如何通过拓扑排序,实现循环依赖判断前言一般提到循环依赖,首先想到的就是Spring框架提供的Bean的循环依赖检测,相关文档可参考:https://blog.csdn.net/cristianoxm/article/details/113246104本文方案脱离SpringBean的管理,通过算法实现的方式,完成对象循环依赖的判断,涉......
  • js判断文件类型详解
    js判断文件类型详解通过file的type属性判断<inputtype="file"onchange="onchangecb(this)"/><script>functiononchangecb(e){constfile=e.files[0];console.log(file.type);}</script>像html中input标签,就是根据选择......
  • 在使用strlen() 函数判断一个字符串长度后重新开辟一个内存存放时要+ 1
    typedef struct{    char *id;    char *name;    int score1;    int score2;    int score3;} Stu;intmain(){Stu*stutmp=(Stu*)malloc(sizeof(Stu));if(stutmp==NULL){returnNULL;}charidtmp......
  • 说说Unity发布WebGL的那些事儿-优化篇
    1.下载Unity2020.1和更高的版本(因为Unity从这个版本之后对WebGL进行了优化)2.如果没有必须后台运行的必要就关闭后台运行P->ResolutionandPresentation->RunInBackGround3.修改一个合适的加载页面(尽量小加载页能让人时间感降低)因为加载的进度条是与数据加载有关与加载到引......
  • Unity3D 任务系统的架构与设计详解
    前言Unity3D是一款非常强大的游戏引擎,它提供了丰富的功能和工具,使得游戏开发变得更加简单和高效。在游戏开发中,任务系统是一个非常重要的组件,它可以使游戏更加有趣和挑战性。在本文中,我们将详细介绍Unity3D任务系统的架构与设计,包括技术详解和代码实现。对惹,这里有一个游戏开......
  • js获取当前页面域名判断跳转网址输出不同内容
    js代码可以实现一些html语言无法实现的功能,比如通过js代码获取当前访问的域名。通过js代码判断当前访问域名可以进行跳转等功能。js获取当前页面域名判断跳转网址代码:<scripttype="text/javascript"> host=window.location.host;if(host=="www.adminwl.com") { window.loca......
  • Unity3D 基于状态机的流程控制详解
    Unity3D是一款强大的游戏开发引擎,它提供了丰富的功能和工具,方便开发者创建各种类型的游戏。在游戏开发过程中,流程控制是一个重要的部分,它决定了游戏的逻辑和玩家的体验。在Unity3D中,我们可以使用状态机来实现流程控制,本文将详细介绍基于状态机的流程控制的技术和代码实现。对啦!这......
  • Unity3D《守望先锋》如何来做帧同步详解
    Unity3D是一种跨平台的游戏开发引擎,它提供了丰富的功能和工具,可以帮助开发人员轻松创建高质量的游戏。在Unity3D中,帧同步是一种重要的技术,它可以确保多个玩家在不同的客户端上同时进行游戏,并保持游戏状态的同步。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础......
  • Unity3D 游戏开发中的随机算法详解
    在Unity3D游戏开发中,随机算法是非常重要的一部分。随机算法可以用于生成随机数、随机位置、随机事件等,为游戏增加了一定的变化性和可玩性。本文将详细介绍Unity3D中常用的随机算法,并给出相应的技术详解和代码实现。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基......