unity3d中获得物体的size
以size的x方向为例
1:gameObject.renderer.bounds.size.x;//这个值的结果真实反应出有MeshRenderer这个组件的模型的尺寸。不需要再乘以localScale.x。
2:gameObject.GetComponent<MeshFilter>().mesh.bounds.size.x;//通过MeshFilter获得原始模型的mesh,该值返回的结果是原始mesh的尺寸。
若要获得模型的尺寸大小还需要乘以模型的localScale.x。
即:gameObject.GetComponent<MeshFilter>().mesh.bounds.size.x*gameObject.transform.localScale.x;
3:为物体添加Collider,然后使用XXX.collider.bounds.size;
这个不一定能很好的反应物体的大小,bounds获得的是物体的外包矩形。而且这个外包矩形的X,Y,Z和世界坐标一致。因此,若物体有旋转,获得的尺寸就不能反应出物体的真实大小,只是其外包矩形的大小。。。
如:获得terrain的尺寸
terrainWidth = terrain.collider.bounds.size.x;
terrainLength = terrain.collider.bounds.size.z;
terrainHeight = terrain.collider.bounds.size.y;
4:代码实现获得复杂物体的尺寸(诸如根节点没有MeshFilter,MeshRenderer组件,物体是由很多复杂不规则的小mesh子物体组成的)
如:
Camera的口径Size
当投影类型为Perspective时,fieldOfView属性表示口径的度数,范围为[1,179]
当投影类型为Orthgraphic, orthographicSize属性为正交模式下的口径尺寸
unity3d中获得物体的size的更多相关文章
- unity3d中让物体显示和隐藏
unity3d中让物体显示和隐藏的方法 gameObject.renderer.enabled //是控制一个物体是否在屏幕上渲染或显示 而物体实际还是存在的 仅仅是想当于隐身 而物体本身的碰撞体还 ...
- (转)Unity3D中移动物体位置的几种方法
1. 简介 在unity3d中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position. 2. 通过Transform组件移动物体 Transform 组件用于描述物体在 ...
- unity3d中获得物体的尺寸(size)
1:获得诸如Plane.Cube的size. 1):可以为它们添加Collider,然后使用XXX.collider.bounds.size;该方法获得的size和缩放比例有关,是一一对应的,缩 ...
- U3D外包团队—技术分享 U3d中获得物体的size
以size的x方向为例 1:gameObject.renderer.bounds.size.x;//这个值的结果真实反应出有MeshRenderer这个组件的模型的尺寸.不需要再乘以localScal ...
- unity3d中控制物体移动方法有那些及区别
1. 利用GameObject的Translate,直接改变它的Transform,前提是需要你实现准备变换矩阵.2. 用MoveTo方法,你只要知道你的目标位置即可.3. 用Math的Lerp方法计 ...
- [Unity3D]Unity3D游戏开发之在3D场景中选择物体并显示轮廓效果
大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei. 在<仙剑奇侠传>.<古剑奇谭>等游戏中,常常须要玩家在一个3D场景中 ...
- 关于Unity3D中鼠标移动指定物体的解决方案
一.鼠标拾取物体的原理 在Unity3D当中,想要在观察面(Aspect)中拾取物体(有碰撞属性)的方法一般如下: 1.声明一个观察的摄像机.一个从摄像机原点出发的射线Ray以及一个用于检测碰撞的Ra ...
- Unity3D中可中途释放的单例
Unity3D中可中途释放的单例 使用静态类,静态变量的坏处是从程序加载后就一直占用内存,想要释放比较麻烦,可是之前使用的单例,没有提供释放的方法,那是不是也同静态的一样直到程序结束菜释放?那单例的好 ...
- unity3d中 刚体(Rigidbody) 碰撞体(Collider) 触发器(Is Trigger)
刚体(Rigidbody)的官方(摘自Unity3d的官方指导书<Unity4.x从入门到精通>)解释如下: Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可 ...
随机推荐
- fibonacci数列(五种)
自己没动脑子,大部分内容转自:http://www.jb51.net/article/37286.htm 斐波拉契数列,看起来好像谁都会写,不过它写的方式却有好多种,不管用不用的上,先留下来再说. 1 ...
- 修改linux的系统时间和时区
时间: date命令将日期设置为2016年12月16日 ---- date -s 12/16/16 将时间设置为9点28分50秒 ---- date -s 09:28:50 时区: tzsel ...
- Java笔记:修饰符
Synchronized 修饰符 Synchronized 关键字声明的方法同一时间只能被一个线程访问.Synchronized 修饰符可以应用于四个访问修饰符. 实例 public synchron ...
- [Android Pro] Scroller使用分析
reference to : http://blog.csdn.net/a910626/article/details/51548840 一.Scroller是什么? Android里 Scrolle ...
- 模拟搭建Web项目的真实运行环境(六)
今天把Redis和Mongodb的操作整理一下,方便日后自己查看,废话不多说,直接进入主题. 一.Redis 1. 引用StackExchange.Redis.dll 由于ServiceStack.R ...
- 移动端下拉刷新、加载更多插件dropload.js(基于jQuery/Zepto)[转]
使用方法 引用css和js <link rel="stylesheet" href="../dist/dropload.min.css"> < ...
- 【转】搞清FastCgi与PHP-fpm之间的关系
一.问题:网上有的说,fastcgi是一个协议,php-fpm实现了这个协议: 有的说,php-fpm是fastcgi进程的管理器,用来管理fastcgi进程的: 有的说,php-fpm是php内核的 ...
- xml之dom4j解析
* 使用dom4j解析xml 实例在java520里面 TextDom4j * dom4j,是一个组织,针对xml解析,提供解析器dom4j * dom4j不是javase的一部分,想要使用第一步需要 ...
- PHP RSA参数签名
为了防止在支付通信过程中的参数数据被篡改或者伪造,采用RSA进行数据签名和验证签名. RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密. ...
- 数据库连接池c3p0学习
这里只记录c3p0的数据源,不会涉及到其它方面和别的数据库连接池的对比 配置文件主要的实现方式有三种: 1.手写代码去加载一个配置文件 创建一个config.properties文件如下: drive ...