当前位置: 首页 > news >正文

unity给物体添加可以包裹所有子物体的BoxCollider

代码如下可直接调用

  MeshTool.SpawnCollider(mode);
using UnityEngine;public class MeshTool
{public static Bounds SpawnCollider(Transform target){Vector3 pMax = Vector3.zero;Vector3 pMin = Vector3.zero;Vector3 center = Vector3.zero;Vector3 oldPos = target.transform.position;Quaternion oldQua = target.transform.rotation;Vector3 oldScale = target.transform.localScale;target.transform.position = Vector3.zero;target.transform.rotation = Quaternion.identity;target.transform.localScale = Vector3.one;Bounds bounds = CalcBounds(target, ref pMax, ref pMin, ref center);BoxCollider collider = target.GetComponent<BoxCollider>();if (collider == null){collider = target.gameObject.AddComponent<BoxCollider>();}collider.center = bounds.center;collider.size = bounds.size;target.transform.position = oldPos;target.transform.rotation = oldQua;target.transform.localScale = oldScale;return bounds;}private static Bounds CalcBounds(Transform obj, ref Vector3 pMax, ref Vector3 pMin, ref Vector3 center){Renderer meshRenderer = obj.GetComponent<Renderer>();if (meshRenderer != null){Bounds b = meshRenderer.bounds;pMax = b.max;pMin = b.min;center = b.center;}RecursivelyCalcBounds(obj.transform, ref pMax, ref pMin);CalculateCenter(pMax, pMin, out center, ref pMax, ref pMin);Vector3 size = new Vector3(pMax.x - pMin.x, pMax.y - pMin.y, pMax.z - pMin.z);Bounds bound = new Bounds(center, size);return bound;}private static void CalculateCenter(Vector3 max, Vector3 min, out Vector3 center, ref Vector3 pMax, ref Vector3 pMin){float xc = (pMax.x + pMin.x) / 2f;float yc = (pMax.y + pMin.y) / 2f;float zc = (pMax.z + pMin.z) / 2f;center = new Vector3(xc, yc, zc);}private static void RecursivelyCalcBounds(Transform obj, ref Vector3 pMax, ref Vector3 pMin){if (obj.transform.childCount <= 0){return;}foreach (Transform item in obj){Renderer m = item.GetComponent<Renderer>();if (m != null){Bounds b = m.bounds;if (pMax.Equals(Vector3.zero) && pMin.Equals(Vector3.zero)){pMax = b.max;pMin = b.min;}if (b.max.x > pMax.x){pMax.x = b.max.x;}if (b.max.y > pMax.y){pMax.y = b.max.y;}if (b.max.z > pMax.z){pMax.z = b.max.z;}if (b.min.x < pMin.x){pMin.x = b.min.x;}if (b.min.y < pMin.y){pMin.y = b.min.y;}if (b.min.z < pMin.z){pMin.z = b.min.z;}}RecursivelyCalcBounds(item, ref pMax, ref pMin);}}}

相关文章:

unity给物体添加可以包裹所有子物体的BoxCollider

代码如下可直接调用 MeshTool.SpawnCollider(mode);using UnityEngine;public class MeshTool {public static Bounds SpawnCollider(Transform target){Vector3 pMax Vector3.zero;Vector3 pMin Vector3.zero;Vector3 center Vector3.zero;Vector3 oldPos target.transfor…...

2024五一数学建模A题思路代码与论文分析

2024五一数学建模A题完整代码和成品论文获取↓↓↓↓↓ https://www.yuque.com/u42168770/qv6z0d/gyoz9ou5upvkv6nx?singleDoc# 2024五一数学建模A题钢板最优切割路径问题需要建立的模型和算法: 图论 最短路径算法(Dijkstra算法、Floyd算法等) 动态规划 网格化离散建模 …...

ICode国际青少年编程竞赛- Python-1级训练场-基础训练2

ICode国际青少年编程竞赛- Python-1级训练场-基础训练2 1、 a 4 # 变量a存储的数字是4 Dev.step(a) # 因为变量a的值是4&#xff0c;所以Dev.step(a)就相当于Dev.step(4)2、 a 1 # 变量a的值为1 for i in range(4):Dev.step(a)Dev.turnLeft()a a 1 # 变量a的值变为…...

科技控必看!让你轻松成为机器人领域达人

科技控们注意了&#xff01;你是不是经常对机器人技术充满无限的好奇&#xff0c;却又因为缺乏合适的渠道而难以深入了解和亲身体验呢&#xff1f;别担心&#xff0c;BFT机器人&#xff0c;正是你探索机器人世界的绝佳之地&#xff01; 在这里&#xff0c;你将发现一个充满惊喜…...

Linux进程——Linux下常见的进程状态

前言&#xff1a;在进程学习这一块&#xff0c;我们主要学习的就是PCB这个进程控制块&#xff0c;而PBC就是用来描述进程的结构体&#xff0c;而进程状态就是PCB结构体中的一个变量。 本篇主要内容&#xff1a; 操作系统中的进程状态Linux下的进程状态 在开始之前&#xff0c;我…...

TCP长连接短链接

1、短连接 短连接是指通讯双方有数据交互时&#xff0c;就建立一个连接&#xff0c;数据发送完成后&#xff0c;则断开此连接&#xff0c;即每次连接只完成一项业务的发送。 2、长连接 长连接是指在一个连接上可以连续发送多个数据包&#xff0c;在连接保持期间&#xff0c;…...

代码随想录35期Day33-Java

Day33题目 LeetCode1005:K 次取反后最大化的数组和 核心思想&#xff1a;每次取反都取反最小的。如果有负数&#xff0c;则一直取反最小的负数&#xff0c;如果没有就取反正数。取反次数只需要看是奇数还是偶数。偶数则正数序列不变&#xff0c;奇数则最小的变成负数 class …...

PMP考试没过怎么办?如何补考?(附复核流程)

最近刷小红书&#xff0c;看很多人都在晒PMP通过的成绩截图&#xff0c;一方面为大家开心&#xff0c;终于拿到了期盼已久的PMP&#xff0c;但同时也有宝子发挥失常没通过考试&#xff0c;所以这期针对没考过的宝子们&#xff0c;出一期复盘文章&#xff0c;无论结果如何&#…...

自主实现Telnet流量抓取

自主实现Telnet流量抓取 根据测试需求&#xff0c;需要抓取Telnet流量包&#xff0c;使用wireshark Python&#xff08;socket、telnetlib库&#xff09;实现 实现代码 主要此处有坑&#xff0c; 根据协议规则&#xff0c;wireshark 默认端口为23 的是Telnet协议&#xff0…...

以瓦片地图为底图添加图表,保留拖拽功能

1、问题1 在地图上覆盖一个容器层&#xff0c;容器层上的内容显示不出来如何解决&#xff1f; 原因&#xff1a;堆叠指数问题 解决方案&#xff1a;绝对定位后&#xff0c;提升其z-index值即可 2、问题2 在地图上覆盖一个容器层&#xff0c;影响了地图拖拽&#xff0c;如何…...

Windows cmd bat之特殊符号及变量

cmd 常用变量 bat批处理常用命令 %1~%9表示拖入文件&#xff08;%0以外的输入文件&#xff09;,%0表示批处理文件本身 %0~%1字母意思基本相同&#xff0c;不区分大小写 ::打印当前窗口地址 echo “%cd%” %0 获取当前文件路径 %~d0 …...

用python写个控制MicroSIP自动拨号和定时呼叫功能(可用在小型酒店叫醒服务)

首先直接上结果吧&#xff0c;MicroSIP 助手&#xff0c;控制MicroSIP自动拨号&#xff0c;定时呼叫的非常实用小工具&#xff01; 在使用MicroSIP 助手之前&#xff0c;我们需要了解MicroSIP是什么&#xff0c;MicroSIP是一个SIP拨号软件&#xff0c;支持注册任意SIP平台实现拨…...

axios 取消token 模糊搜索

import axios from ‘axios’; // 创建一个取消令牌源&#xff08;cancel token source&#xff09; const CancelToken axios.CancelToken; const source CancelToken.source(); // 下拉框搜索函数 function search() { // 获取输入值 const inputValue document.getElem…...

【OTS4WORD】“精简并行过程”——容易剪裁的“软件过程改进方法和规范”模板

附件资源是作者针对SPP采用模板重新格式化打包制作&#xff0c;原模板具有格式不受控的缺点&#xff0c;导致文档编制过程中引起不必要的排版麻烦。 附件资源适用于希望改进工作流程&#xff0c;适配CMMI质量管理体系的公司或个人使用&#xff0c;质量改进管理组织、项目管理组…...

22 | MySQL有哪些“饮鸩止渴”提高性能的方法?

短连接风暴 第一种方法:先处理掉那些占着连接但是不工作的线程。 kil id 第二种方法:减少连接过程的消耗。 让数据库跳过权限验证阶段,重启数据库,并使用–skip-grant-tables 参数启动。 慢查询性能问题 索引没有设计好 创建索引都支持 Online DDL 了,对于那种高峰期数…...

【AIGC调研系列】VILA-1.5版本的视频理解功能如何

VILA-1.5版本的视频理解功能表现出色&#xff0c;具有显著的突破。这一版本不仅增强了视频理解能力&#xff0c;还提供了四种不同规模的模型供用户选择&#xff0c;以适应不同的应用需求和计算资源限制[1][2][3]。此外&#xff0c;VILA-1.5支持在笔记本等边缘设备上部署&#x…...

如何解决WordPress邮件发送和接收问题

在使用WordPress网站时&#xff0c;用户有时可能会遇到邮件接收或发送失败的问题。这种问题不仅影响网站的正常运营&#xff0c;还可能影响用户体验。以下是一篇详细的解决方案文章&#xff0c;帮助您系统地诊断和解决WordPress不发送或收不到邮件的问题。 引言 WordPress作为…...

MySQL学习笔记10——日志

日志 一、日志1、通用查询日志&#xff08;1&#xff09;开启通用查询日志&#xff08;2&#xff09;查看通用查询日志&#xff08;3&#xff09;删除通用查询日志 2、慢查询日志3、错误日志4、二进制日志&#xff08;1&#xff09;查看二进制日志&#xff08;2&#xff09;刷新…...

OpenSPG docker 安装教程

文章目录 前言自述 一、OpenSPG1.介绍 二、安装步骤1.安装服务端2.客户端部署 前言 自述 我最近是想结合chatglm3-6b和知识图谱做一个垂直领域的技术规范的问答系统&#xff0c;过程中也遇到了很多困难&#xff0c;在模型微调上&#xff0c;在数据集收集整理上&#xff0c;在知…...

TypeScript学习日志-第十六天(泛型)

泛型 一、函数泛型 当我们有多个函数是一样的不同的的函数的类型不一样时&#xff0c;我们可以使用泛型&#xff0c;这样就可以省去很多重复的书写&#xff0c;例如&#xff1a; 这样的两个函数时一样的&#xff0c;就是类型不一样&#xff0c;我们就可以使用泛型这样写&…...

GME-Qwen2-VL-2B助力AIGC内容创作:自动为图片生成创意文案与故事

GME-Qwen2-VL-2B助力AIGC内容创作&#xff1a;自动为图片生成创意文案与故事 你有没有过这样的经历&#xff1f;面对一张精心拍摄的照片&#xff0c;却怎么也憋不出几句像样的文案。或者&#xff0c;看着一张充满故事感的图片&#xff0c;脑海里思绪万千&#xff0c;落到笔尖却…...

Nuitka打包Python脚本为.exe的完整避坑指南(含Selenium解决方案)

Nuitka打包Python脚本为.exe的完整避坑指南&#xff08;含Selenium解决方案&#xff09; 将Python脚本打包成独立的可执行文件是许多开发者面临的常见需求&#xff0c;尤其是当需要分发工具或应用给没有Python环境的用户时。Nuitka作为一款强大的Python编译器&#xff0c;能够将…...

基于Altera Cyclone4 FPGA-EP4CE15F17C8核心板的硬件设计实战(原理图+PCB+AD09工程)

1. 从零开始搭建FPGA核心板硬件系统 第一次接触FPGA核心板设计时&#xff0c;我被密密麻麻的引脚和复杂的电源系统搞得头晕眼花。直到用AD09完整走完EP4CE15F17C8核心板的设计流程&#xff0c;才发现硬件开发就像搭积木——只要掌握模块化思维&#xff0c;菜鸟也能做出专业级设…...

3种激活方案:解决IDM弹窗问题的开源工具应用指南

3种激活方案&#xff1a;解决IDM弹窗问题的开源工具应用指南 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 一、问题溯源&#xff1a;解析IDM激活弹窗的技术本质…...

MoveIt Config 配置文件完整一致性检查

检查范围&#xff08;全部核对完毕&#xff09;ros2_control xacro&#xff08;硬件接口 / 关节&#xff09;initial_positions.yaml&#xff08;初始位置&#xff09;srdf&#xff08;运动组 / 关节&#xff09;joint_limits.yaml&#xff08;关节限制&#xff09;kinematics.…...

收藏!小白也能看懂的大模型如何改写工业效率?

收藏&#xff01;小白也能看懂的大模型如何改写工业效率&#xff1f; 本文介绍了中控技术的TPT大模型在工业生产中的应用&#xff0c;它通过实时监控、自动计算最优参数和风险预警&#xff0c;帮助企业提升效率、降低成本。与互联网领域的AI应用不同&#xff0c;工业AI的价值更…...

feishu2md:飞书文档批量下载与Markdown转换解决方案

feishu2md&#xff1a;飞书文档批量下载与Markdown转换解决方案 【免费下载链接】feishu2md 一键命令下载飞书文档为 Markdown 项目地址: https://gitcode.com/gh_mirrors/fe/feishu2md 在团队协作和知识管理场景中&#xff0c;飞书文档已成为许多组织的核心工具。然而&…...

LangChain4j vs Spring AI:Java AI 框架技术选型深度对比与生产落地指南

LangChain4j vs Spring AI:Java AI 框架技术选型深度对比与生产落地指南 摘要:当 Java 团队建设 AI 应用时,真正困难的通常不是“能否调通模型”,而是“如何把 Prompt、RAG、工具调用、可观测性、限流熔断、灰度发布、权限隔离与业务系统稳定地耦合起来”。本文不再停留在 …...

Simulink Simscape传感模块实战指南:从基础到高级应用

1. Simscape传感模块基础入门 第一次接触Simulink Simscape的传感模块时&#xff0c;我完全被那些复杂的参数搞晕了。后来才发现&#xff0c;这些模块其实就是物理系统的"眼睛"和"耳朵"&#xff0c;专门用来捕捉机械系统中的各种运动状态和力学特性。举个生…...

别再只会用A4988了!用STM32+L298N手撸42步进电机细分驱动(附256细分算法)

从零构建STM32L298N的256细分步进电机驱动系统 在创客和嵌入式开发领域&#xff0c;步进电机控制一直是个既基础又充满挑战的课题。市面上常见的A4988、DRV8825等驱动模块虽然方便&#xff0c;但当项目需要更高精度、更灵活控制时&#xff0c;这些现成方案往往显得力不从心。本…...