U3d中获取模型的大小

这是个学习摘录:


在u3d中你可能会纠结于,一个有模型的游戏对象它到底是多大,如何才能得到它确切的大小值。

废话不多说下给出它的求解过程:

 1、通过mesh.bounds.size 可以拿到模型对应三个轴向的大小

 2、但是模型是可以缩放的,所以真实的模型高度应当是原始高度乘以缩放系数才行。通过 transform.lossyScale可以拿到模型对应三个轴向的缩放系数。

代码如下:

/// <summary>
/// 获取游戏对象的大小
/// </summary>
/// <returns>
/// The size.
/// </returns>
Vector3 GetObjectSize()
{
	Vector3 realSize = Vector3.zero;
	
	Mesh mesh = GetComponent<MeshFilter>().mesh;
	if(mesh==null)
	{
		return realSize;
	}
	// 它模型网格的大小
	Vector3 meshSize = mesh.bounds.size;		
	// 它的放缩
	Vector3 scale = transform.lossyScale;
	// 它在游戏中的实际大小
	realSize = new Vector3(meshSize.x*scale.x, meshSize.y*scale.y, meshSize.z*scale.z);
	
	return realSize;
}


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿海-程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值