Unity包围盒

news2024/11/28 4:48:04

比如,目前导入了一个obj文件,想知道它的AABB包围盒是什么。

官方文档

Unity - Scripting API: Bounds (unity3d.com)

可以看到,包围盒有三个类别的:

Mesh.bounds

Unity - Scripting API: Mesh.bounds (unity3d.com)

不随gameobject的几何变换而变换,大概是直接用obj里的顶点坐标算出来的;也就是所谓的模型坐标系。

api怎么调用的?主要就是这几句:

试一试

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BoundTest : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Mesh mesh = GetComponent<MeshFilter>().mesh;
        Bounds bounds = mesh.bounds;
        print(bounds.center); // 把文档里的属性,都打印出来看看
        print(bounds.size);
        print(bounds.min);
        print(bounds.max);
        print(bounds.extents);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

关于文档里面not change的演示:

代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BoundTest : MonoBehaviour
{
    private Mesh mesh;
    private Bounds bounds;

    // Start is called before the first frame update
    void Start()
    {

        mesh = GetComponent<MeshFilter>().mesh;
        // bounds = mesh.bounds; // 不能放到这里的,放在这里的话,每帧打印的都是同一个bounds;就算是rend.bounds,打印结果也不变
    }

    // Update is called once per frame
    void Update()
    {
        bounds = mesh.bounds; // 应该实时获取
        print(bounds.center);
    }
}

结果: 

Render.bounds

Unity - Scripting API: Renderer.bounds (unity3d.com)

主要是这么几句:

试一试

代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BoundTest : MonoBehaviour
{
    private Mesh mesh;
    private Renderer rend;

    private Bounds bounds;

    // Start is called before the first frame update
    void Start()
    {
        mesh = GetComponent<MeshFilter>().mesh;
        rend = GetComponent<Renderer>();
    }

    // Update is called once per frame
    void Update()
    {
        //bounds = mesh.bounds;
        bounds = rend.bounds; // 实时获取包围盒,才能看到变没变

        print(bounds.center);
    }
}

后记

知道这些,其实就差不多了。

更详细的可以看这些:

(87条消息) Unity Bounds的理解_一梭键盘任平生的博客-CSDN博客

(87条消息) 【Unity3D】绘制物体外框线条盒子_unity 绘制线框_little_fat_sheep的博客-CSDN博客

总结的很好的:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/576999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【万字解析、学习参考资料】MySQL数据库常见面试题

version&#xff1a;1.0 文章目录 基础篇&#x1f64e;‍♂️面试官&#xff1a; 非关系型数据库和关系型数据库的区别&#xff1f;&#x1f64e;‍♂️面试官&#xff1a; MySQL 数据库两种存储引擎的区别? 事务篇&#x1f64e;‍♂️面试官&#xff1a; 事务的四大特性了解…

C语言之网络编程(必背知识点)

一、认识网络 1、网络发展史 网络的来历_百度知道 ARPnetA--Internet--移动互联网--物联网 2、局域网和广域网 局域网&#xff08;LAN&#xff09; 局域网的缩写是LAN&#xff0c;local area network&#xff0c;顾名思义&#xff0c;是个本地的网络&#xff0c;只能实现小范围…

【KVM虚拟化】· 虚拟机的冷迁移和热迁移

目录 &#x1f34e;静态迁移(冷迁移) &#x1f34e;动态迁移&#xff08;热迁移&#xff09; &#x1f34e;迁移注意事项 &#x1f352;静态迁移 &#x1f352;动态迁移 &#x1f352;迁移帮助命令 &#x1f34e;迁移实例 &#x1f353;冷迁移 &#x1f353;热迁移 &#x1f35…

ChatGPT让我变成了“超人”-如何提升团队30%效能质量提高100%的阶段性总结报告

创作背景 CHATGPT刚出现时我的内心有一万匹“马”在奔腾&#xff0c;我是排斥的、BS的、甚至关掉屏敝掉相关新闻、连家里电视机的插线都拨掉。因为它的表现真的伤到了我的自尊。 这样的情绪源至我自己的“不自信”&#xff0c;不自信的前提是因为听到的东西太过于有“冲击性”了…

更适合电音的蓝牙耳机,设计真的很潮,哈氪零度青春版上手

现在低价位的耳机&#xff0c;音质都没什么特点&#xff0c;设计也是马马虎虎吧&#xff0c;想找一款好看好听的耳机还真不容易。最近我用的是一款哈氪零度青春版&#xff0c;这款耳机设计就很不错&#xff0c;上面加入了冰雪的元素&#xff0c;而且这款耳机音频素质也很不错&a…

ESP32-S3在VSCODE上编译烧录

1.准备 安装好ESP-IDF和VSCODE上的扩展插件 参考安装步骤1 参考按照步骤2 2.编译和烧录 &#xff08;1&#xff09;显示所有例程 &#xff08;2&#xff09;在get-started处选择hello_world&#xff0c;然后创建项目目录 &#xff08;3&#xff09;选择芯片类型&#xff0c…

【网络协议详解】——DNS系统协议(学习笔记)

目录 &#x1f552; 1. DNS的作用&#x1f552; 2. 域名结构&#x1f552; 3. 域名分类&#x1f552; 4. 域名空间&#x1f552; 5. 域名服务器类型&#x1f558; 5.1 根域名服务器&#x1f558; 5.2 顶级域名服务器&#x1f558; 5.3 权限域名服务器&#x1f558; 5.4 本地域名…

Java-软考总结

软考总结目录 宏观  学习感受  阶段划分 微观  1.自己看书和看视频&#xff1a;  2.学习的知识点和课后题进行结合  3.做往年的软考真题  4.提炼出相对来说难以攻克的问题组织分享和讨论  5.小组讨论做错的题并进行结构化 总结学习时间上学习方法上学习形式上 宏…

【Linux入门】Linux权限及管理

【Linux入门】Linux权限及管理 目录 【Linux入门】Linux权限及管理Linux权限管理文件访问者的分类文件类型和访问权限&#xff08;事物属性&#xff09; 文件权限值的表示方法文件访问权限的相关设置方法目录的权限实现共享目录粘滞位目录权限总结 作者&#xff1a;爱写代码的刚…

【iOS开发-多线程【四】pthreadNSThread

前言 多线程的最后一篇&#xff0c;从GCD的API到GCD的实现&#xff0c;学到了NSOperation和NSOperationQueue 慢慢了解了多线程的使用场景和众多原理&#xff0c;其中不乏涉及到了其他的知识&#xff0c;锁等。 这篇博客学习iOS常用的NSThread&#xff0c;了解pthread&#x…

DBeaver安装与使用教程

—仅供学习 侵权请联系删除– 一、DBeaver介绍 DBeaver是免费和开源&#xff08;GPL&#xff09;为开发人员和数据库管理员通用数据库工具。 1.它支持任何具有一个JDBC驱动程序数据库&#xff0c;也可以处理任何的外部数据源。 DBeaver 通过 JDBC 连接到数据库&#xff0c;可以…

在AgilePLM项目中使用积木报表

前言 目前市面上有很多比较好的报表工具&#xff0c;但很多收费都比较昂贵&#xff0c;这次找到一个开源免费的报表工具。推荐企业内部开发使用 积木报表虽然没有FineReport那么功能强大&#xff0c;但是目前测试下来也可以满足大部分报表功能。也是能缩短开发周期降低开发成…

PCDViewer的常用操作

PCDViewer是一款功能强大但操作极为简单的点云可视化和编辑软件&#xff0c;支持对点云的渲染显示、查询、量测、建图拼接、编辑、格式转换等功能&#xff0c;同时支持了pose文件、矢量文件等的显示。PCDViewer目前提供了Windows、Ubuntu18.04、Ubuntu20.04等版本。 本页面总结…

Mysql之高可用方案浅析

在工程项目中&#xff0c;系统应用的高可用性越来越重要&#xff0c;业主越来越重视。其实高可用可以分为应用层高可用和数据层高可用&#xff0c;数据层高可用中常见的有关系型数据库mysql的高可用、非关系型NoSQl数据库redis的高可用等&#xff0c;下面聊聊典型的关系型数据库…

2023 剑桥大学博士后/访问学者项目一览

作为全球知名的高等教育机构&#xff0c;剑桥大学一直致力于与世界各地的学者保持紧密联系&#xff0c;共同探索各个学科领域的前沿问题和挑战。为了加强国际间的学术交流和合作&#xff0c;剑桥大学开展了博士后访问学者项目&#xff0c;为来自不同国家和地区的优秀学者提供机…

【Python pyqt】零基础也能轻松掌握的学习路线与参考资料

。 Python和pyqt是一对非常强大的组合&#xff0c;可以用于快速开发各种应用程序&#xff0c;包括桌面应用程序、Web应用程序、游戏等等。如果想要系统地了解如何学习Python pyqt&#xff0c;可以遵循以下学习路线&#xff1a; Python基础知识学习 在学习pyqt之前&#xff0c…

机器学习_数据升维_多项式回归代码_保险案例数据说明_补充_均匀分布_标准正太分布---人工智能工作笔记0038

然后我们再来看一下官网注意上面这个旧的,现在2023-05-26 17:26:31..我去看了新的官网, scikit-learn已经添加了很多新功能, 我们说polynomial多项式回归其实是对数据,进行 升维对吧,从更多角度去看待问题,这样 提高模型的准确度. 其实y=w0x0+w1x1.. 这里就是提高了这个x的个…

发现一个好玩的东西:Markdown 使用 Emoji 表情

Markdown 使用 Emoji 表情 玩法1、复制和粘贴表情符号2、使用表情符号简码Markdown 定义列表 玩法 有两种方法可以将表情符号添加到Markdown文件中&#xff1a; 将表情符号复制并粘贴到Markdown格式的文本中或者键入emoji shortcodes。 1、复制和粘贴表情符号 在大多数情况…

C++ 学习 ::【基础篇:06】:C++ (inline)内联函数的介绍及其出现的意义【对比于 C语言宏函数】

本系列 C 相关文章 仅为笔者学习笔记记录&#xff0c;用自己的理解记录学习&#xff01;C 学习系列将分为三个阶段&#xff1a;基础篇、STL 篇、高阶数据结构与算法篇&#xff0c;相关重点内容如下&#xff1a; 基础篇&#xff1a;类与对象&#xff08;涉及C的三大特性等&#…

基于html+css的图展示94

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…