unity 获取复杂物体(模型)中心点

2023-10-27

Unity 获取复杂物体(模型)中心点

1.获取物体中心点

        public Vector3 GetCenter(GameObject target)
        {




            Renderer[] mrs = target.gameObject.GetComponentsInChildren<Renderer>();
            
            Vector3 center = target.transform.position;
            
            if (mrs.Length != 0)
            {
            
            
                Bounds bounds = new Bounds(center, Vector3.zero);
                
                foreach (Renderer mr in mrs)
                {
                
                    bounds.Encapsulate(mr.bounds);

                }
                
                center = bounds.center;
            }
            return center;
 
        }

2.获取物体包围盒(通过Renderer)

        public Bounds GetBounds(GameObject target, bool include_children = true)
        {
 
            Renderer[] mrs = target.gameObject.GetComponentsInChildren<Renderer>();
            Vector3 center = target.transform.position;

            Bounds bounds = new Bounds(center, Vector3.zero);

            if (include_children)
            {

                if (mrs.Length != 0)
                {

                    foreach (Renderer mr in mrs)
                    {

                        bounds.Encapsulate(mr.bounds);
                    }
                }
            }
            else
            {
                Renderer rend = target.GetComponentInChildren<Renderer>();
                if (rend)
                {
                    bounds = rend.bounds;
                }
            }
 
            return bounds;
 
        }

3.获取物体包围盒(通过MeshFilter)

        public Bounds GetLocalBounds(GameObject target, bool include_children = true)
        {
 
            MeshFilter[] mfs = target.gameObject.GetComponentsInChildren<MeshFilter>();
            Vector3 center = target.transform.localPosition;
            Bounds bounds = new Bounds(center, Vector3.zero);
            if (include_children)
            {
                if (mfs.Length != 0)
                {
                    foreach (MeshFilter mf in mfs)
                    {
                        if (mf.mesh)
                        {
                            bounds.Encapsulate(mf.mesh.bounds);
                        }
                    }
                }
            }
            else
            {
                MeshFilter mf = target.GetComponentInChildren<MeshFilter>();
                if (mf && mf.mesh)
                {
                    bounds = mf.mesh.bounds;
                }
            }
 
            return bounds;
 
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

unity 获取复杂物体(模型)中心点 的相关文章

  • 如何使用 ASP.NET MVC 编辑多选列表?

    我想编辑一个如下所示的对象 我希望用 UsersGrossList 中的一个或多个用户填充 UsersSelectedList 使用 mvc 中的标准编辑视图 我只得到映射的字符串和布尔值 下面未显示 我在 google 上找到的许多示例都
  • IEnumerable 的 String.Join(string, string[]) 的类似物

    class String包含非常有用的方法 String Join string string 它从数组创建一个字符串 用给定的符号分隔数组的每个元素 但一般来说 它不会在最后一个元素之后添加分隔符 我将它用于 ASP NET 编码 以用
  • C free() 是如何工作的? [复制]

    这个问题在这里已经有答案了 可能的重复 malloc 和 free 如何工作 https stackoverflow com questions 1119134 how malloc and free work include
  • 将 OpenCV Mat 转换为数组(可能是 NSArray)

    我的 C C 技能很生疏 OpenCV 的文档也相当晦涩难懂 有没有办法获得cv Mat data属性转换为数组 NSArray 我想将其序列化为 JSON 我知道我可以使用 FileStorage 实用程序转换为 YAML XML 但这不
  • C# 处理标准输入

    我目前正在尝试通过命令行断开与网络文件夹的连接 并使用以下代码 System Diagnostics Process process2 new System Diagnostics Process System Diagnostics Pr
  • 将下拉列表与字典绑定

    我将字典绑定到下拉列表 举例来说 我的字典中有以下项目 Test1 123 Test2 321 我希望下拉文本采用以下格式 Test1 Count 123 Test2 Count 321 我沿着以下路径走 但没有运气 MyDropDown
  • C 中“complex”的默认类型

    根据我读过的文档 C99 和更高版本的支持float complex double complex and long double complex作为复杂类型 但是 此代码在使用时编译时不会发出警告gcc Wall Wextra inclu
  • 为什么需要数字后缀?

    C 语言 我确信还有其他语言 需要在数字文字末尾添加后缀 这些后缀指示文字的类型 例如 5m是一个小数 5f是一个浮点数 我的问题是 这些后缀真的有必要吗 或者是否可以从上下文中推断出文字的类型 例如 代码decimal d 5 0应该推断
  • 将日期时间转换为指定格式

    我有这个日期格式yy MM dd HH mm ss ex 12 02 21 10 56 09 问题是 当我尝试使用以下代码将其转换为不同格式时 CDate 12 02 21 10 56 09 ToString MMM dd yyyy HH
  • 静态类与类的实例

    我有一个静态类 用于访问我的公共属性 整个应用程序的全局属性 和我在应用程序运行期间使用的方法 例如 我在静态类中设置了一些属性 并且在应用程序运行时我可以从属性中获取值 但我可以使用单例模式创建非静态类并以相同的方式使用它 问题 对于我的
  • 在 C# 中何时使用 ArrayList 而不是 array[]?

    我经常使用一个ArrayList而不是 正常 array 当我使用时 我感觉好像我在作弊 或懒惰 ArrayList 什么时候可以使用ArrayList在数组上 数组是强类型的 并且可以很好地用作参数 如果您知道集合的长度并且它是固定的 则
  • 子目录中的头文件(例如 gtk/gtk.h 与 gtk-2.0/gtk/gtk.h)

    我正在尝试使用 GTK 构建一个 hello world 其中包括以下行 include
  • C# 中的 C/C++ 代码编译器

    在 C 中 我可以使用下面的代码编译 VB 和 C 代码 但无法编译 C C 代码 有什么办法可以做到这一点吗 C 编译器 public void Compile string ToCompile string Result null st
  • 无法在 C# 中为 EventArgs 分配使用派生类型的事件处理程序

    所以我有一个事件声明如下 public event EventHandler OnChangeDetected 然后我有以下处理程序被分配给该事件 myObject OnChangeDetected OnTableChanged 我的理解是
  • Autoconf 问题:“错误:C 编译器无法创建可执行文件”

    我正在尝试使用 GNU 自动工具构建一个用 C 编写的程序 但显然我设置错误 因为当configure运行 它吐出 configure error C compiler cannot create executables 如果我看进去con
  • 如何将 int 作为“void *”传递给线程启动函数?

    我最初有一个用于斐波那契变量数组的全局变量 但发现这是不允许的 我需要进行基本的多线程处理并处理竞争条件 但我无法在 pthread 创建中将 int 作为 void 参数提供 我尝试过使用常量指针 但没有成功 由于某些奇怪的原因 void
  • 如果“嵌入式”SQL 2008 数据库文件不存在,如何创建它?

    我使用 C ADO Net 和在 Server Management Studio 中创建的嵌入式 MS SQL 2008 数据库文件 附加到 MS SQL 2008 Express 创建了一个数据库应用程序 有人可以向我指出一个资源 该资
  • 将 Swagger 与命名空间版本的 WebApi 结合使用

    我已经找到了如何使用基于名称空间的 WebAPI 版本这个班 https aspnet codeplex com SourceControl changeset view dd207952fa86 Samples WebApi Namesp
  • 如何提高环复杂度?

    对于具有大量决策语句 包括 if while for 语句 的方法 循环复杂度会很高 那么我们该如何改进呢 我正在处理一个大项目 我应该减少 CC gt 10 的方法的 CC 并且有很多方法都存在这个问题 下面我将列出一些例如我遇到的问题的
  • 为什么表达式 a = a + b - ( b = a ) 在 C++ 中给出序列点警告?

    以下是测试代码 int main int a 3 int b 4 a a b b a cout lt lt a lt lt a lt lt lt lt b lt lt b lt lt n return 0 编译此命令会出现以下警告 gt g

随机推荐

  • 编程实现时钟表盘刻度

    首先看个时钟刻度显示效果 一个表盘有60个刻度 每5个刻度就有一个刻度尺寸偏长 画该表盘步骤如下 画外围圈 这个就是画一个圆 假设其圆心坐标为 x 0 y
  • 使用SimHash算法实现千万级文本数据去重插入(python版代码)

    前言 最近在搞大量数据插入MySQL的时候悲催的发现速度越来越慢 因为我的数据来多个源 使用流式更新 而且产品要求在这个表里面不能有数据重复 划重点 衡量数据是否重复的字段是文本内容 字段类型是text 那么问题来了 如何在千万级数据量实现
  • STM32PWM频率计算

    PWM计算 PWM频率 定时器频率 分频系数 x 自动重装载值 PWM占空比 CCRx 自动重装载值 period CLOCK Freq 1 pulse period 1 Dutycycle 100 注意 如果需要高精度 可以使用32位定时
  • keil5破解(备忘,有需要的可以下载)

    管理员身份运行 配置license 运行Keygen 网盘链接 https pan baidu com s 15sw4R0ePrICQoeRx2ELneA pwd 04eq 提取码 04eq
  • odoo查看用户有没有某个权限

    查看用户在不在某个权限组 self env user has group 模块名 权限组id 或者 self user has groups 模块名 权限组id 示例
  • Mybatis 面试题,你想知道的都在这里了!

    1 和 的区别是什么 注 这道题是面试官面试我同事的 答 是 P r o p e r t
  • 对比学习系列论文COST(二):

    快速预览 0 ABSTRACT 0 1逐句翻译 0 2总结 1 INTRODUCTION 1 1 逐句翻译 第一段 介绍序列流预测的事情 现在都用强有力的非线性层来进行学习并取得好效果 第二段 但是这些逐渐复杂的网络 加剧了过拟合等问题 因
  • QSharedMemory

    QSharedMemory 类提供了对一段共享内存的访问 既提供了被多进程和多线程共享的一段内存的访问 也为单线程或单进程锁定内存以实现互斥访问提供了方法 这个类在不同操作系统的使用是有差异的 这里只说下载windows下的 在window
  • ant-design-vue的兼容问题2

    问题 ant design vue不兼容ie浏览器 要求 ie兼容 gt 9 环境 vue cli 4 5 4 ant design vue 1 6 4 之前写了一篇博文解决ant design vue的兼容 由于 vue cli搭建项目升
  • S7 200 smart高速计数功能应用

    高速计数功能应用 https ke qq com course package 26452 单相 只有一个输入 I0 0 进高速计数端 用于频率比较高的场景 双相 有两个输入 I0 0 I0 1 一个是增计数 一个是减计数 A B相 适用于
  • pytorch和GPU有关操作(CUDA)

    使用GPU前 我们首先需要查看GPU信息 这可以通过如下命令实现 watch nvidia smi 输出如下 可以看到总共有两块3090显卡 一 设定计算设备 默认情况下Pytorch将数据创建在内存 然后利用CPU进行计算 所以我们我们需
  • PL/SQL中执行按钮变为灰色后如何恢复【已解决】

    PL SQL中执行按钮变为灰色后如何恢复 已解决 最近向数据库中导数据 结果PL SQL卡住半天没有反应 我就杀死了PL SQL的进程 再一次打开数据时 发现执行按钮被置灰了 没有办法执行sql 解决方法 随便写一行sql语句 按下键盘F8
  • Vue3 模糊搜索

    1
  • 爬虫基础入门(4)简单模拟登录

    本节我们介绍使用爬虫进行美食杰网站的模拟登录 首先我们找到美食杰的登录界面的url以及headers cookie from urllib import request 首先我们导入request库和cookie库 from http co
  • Bubble冒泡排序

    原谅我偷懒 是真的没有什么写的内容了啊 我都好怀疑他们那些大佬是怎么那么多的文章和技术分享的 我要自闭了 时间复杂度O n2 C 的内置排序函数使用的并非冒泡而是快排 Git地址 public override void SortOrder
  • chatGPT写小游戏1分钟一个,快到起飞

    猜数字游戏的规则是电脑随机生成一个1到100之间的整数 玩家需要猜测这个数字是多少 电脑会提示玩家猜的数字是偏大还是偏小 直到猜中为止 下面是代码示例 import random num random randint 1 100 guess
  • argparse模块的用法

    argparse模块的用法 示例 创建解析器 添加参数 解析参数 ArgumentParser对象 编程 用法 说明 parents formatter class 版本3 5中的新功能 版本 3 2中的新功能 源代码 Lib argpar
  • 用神经辐射场在大场景中漫游

    目录 前言 介绍 背景 改进 NeRF 以编码大型场景 在训练数据中获得足够的观点 动态对象移除 应用 结论 参考 前言 最近一直在做NeRF相关工作 偶然看到台湾智慧实验室一篇文章 Hovering Around a Large Scen
  • 毕业设计 基于单片机的多功能遥控器设计

    0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求 为了大家能够顺利以及最少的精力通过毕设 学长分享优质毕业设计项
  • unity 获取复杂物体(模型)中心点

    Unity 获取复杂物体 模型 中心点 1 获取物体中心点 public Vector3 GetCenter GameObject target Renderer mrs target gameObject GetComponentsInC