Unity游戏物体尺寸的获取方式与影响因素
来源:互联网 发布:xcalibur for mac 编辑:程序博客网 时间:2024/05/16 05:03
参考文章:
Unity3D 获取一个游戏对象的尺寸
Unity3D 2D入门——sprite尺寸、获取对象
unity与3DMax的单位问题
1、获取父物体时获取自身位置
物体在场景中的实际坐标是自身和所有父对象的坐标相加的结果数值。假设游戏物体的层级是Background -> Deck -> Target,脚本附在target上,代码应该是这样:
- Vector3 posTarget = transform.localPosition
- + transform.parent.localPosition
- + transform.parent.parent.localPosition;
2、获取物体的尺寸
Unity3D中的物体都是以米为单位来计算的,比如 cube的x,y,z初始值都为1米,而plane的x=z=10米,y=0米。
获取尺寸的核心代码:
Vector3 originSize = GetComponent<...>().size;//物体原始尺寸
Vector3 factSize = transform.localScale * originSize;//在unity场景中的实际尺寸
(1)3D物体
一般根据Collider这些碰撞体组件获取尺寸大小。此时GetComponent<xxCollider>().bounds.size;为实际尺寸,可直接使用。
(2)2D物体
一般根据spriteRenderer、meshRederer等组件获取尺寸大小。2D物体需要利用bounds获取原始尺寸,即GetComponent<...>().bounds.size;。
3、影响物体尺寸的因素
(1)首先是3DMax中的系统单位设置。如下图,左边是系统单位,右边是显示单位。
系统单位决定3Dmax系统记录模型实际尺寸的单位,默认为1cm,显示单位决定3DMax主面板显示时使用的尺寸单位,默认为10cm。系统单位与显示单位、模型尺寸共同决定,最终存储时记录的单位值(暂且叫“存储单位”),公式为:存储单位=(模型尺寸/显示单位)*(显示单位/系统单位)。例如:做个1cm的box:显示单位设置为1cm时,系统单位为1cm 存储单位为1,系统单位为0.1mm 存储单位为100(10mm=1cm);做个1m的box:显示单位设置为1cm时,系统单位为1cm 存储单位为100,系统单位为0.1mm 存储单位为10000。
“存储单位”最终会记录到模型文件,Unity3D导入时将按“1存储单位=1m”的比例显示模型。
(2)在模型资源的导入属性中,scale Factor影响着模型的在unity的原始尺寸。表示模型在unity中的尺寸按这个比例进行缩放。
模型导入后一般情况会缩小为1/100,因为导入属性中的scaleFactor默认为0.01。为了实现3DMax导出的模型在导入Unity3D时默认1m=1m,那么我们需要让“存储单位”=100。“存储单位”=(模型尺寸/显示单位)*(显示单位/系统单位),化简为“存储单位”=模型尺寸/系统单位,即可理解为存储单位表示模型的尺寸是多少个系统单位大小,与显示单位无关。模型尺寸假设1m,计算出系统单位为1cm。所以在约定不修改scaleFactor情况下,3DMax里系统单位只要设置为cm,则可实现“实现3DMax导出的模型在导入Unity3D时默认1m=1m”。
(3)在图片资源的导入属性中,pixel per unit影响着图片在unity的原始尺寸。这个选项表示:该图片的N个单位(正常情况是像素)=unity中的1个单位(默认是米)。
- Unity游戏物体尺寸的获取方式与影响因素
- unity 获取物体尺寸
- unity获取物体尺寸
- Unity中影响性能的几个因素
- Unity影响渲染顺序因素的总结
- unity中物体尺寸的研究
- Unity 中关于获取到物体的方式
- 不确定因素对游戏的影响
- 【Unity】Unity中影响性能的几个因素
- Unity3D开发之获取物体的尺寸
- unity游戏物体之间的碰撞检测
- 分析影响手机游戏未来走向的5大因素
- Unity中物体抛物线的实现方式
- unity 物体移动方式的一些笔记
- Unity中物体抛物线的实现方式
- unity获取物体下的所有子物体
- 影响股价的因素
- 影响意志力的因素
- Android应用进程间通信之Messenger信使使用及源码浅析
- Java面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结
- 二维数组
- HTML添加图标icon
- maven依赖包下载失败解决办法
- Unity游戏物体尺寸的获取方式与影响因素
- 王朝 判断回文数
- Android Messenger源码分析
- 477. Total Hamming Distance
- struts2_hibernate5_spring4整合的一般步骤及其注意事项
- 随机不重复邀请码
- R语言学习一
- bzoj 3053: The Closest M Points (KD-tree)
- tsMuxeR