微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity3D:将所有游戏对象转换为相同大小,而不考虑其大小

如何解决Unity3D:将所有游戏对象转换为相同大小,而不考虑其大小

假设我有一个比例为(1,1,1)的参考GameObject Cube。还有另一个缩放比例为(1,1)的GameObject,但其大小是Cube的3倍。如何动态更改游戏对象的比例以适合多维数据集的大小?

解决方法

在每个滤镜上获取网格滤镜,并使用Mesh.bounds.size来获取其尺寸。为了使第二个对象适合第一个对象,您可以根据网格大小的不同来更改第二个对象的比例。

// If you want it to be 100% accurate,you should multiply RefSize here 
// by RefMeshFilter.transform.lossyScale so that the other object's 
// size also accounts for the reference object's scale.
var RefSize = RefMeshFilter.bounds.size;
var MySize = MyMeshFilter.bounds.size;  
var NewScale = new Vector3(RefSize.x / MySize.x,RefSize.y / MySize.y,RefSize.z / MySize.z);

// I'm un-parenting and re-parenting here as a quick way of setting global/lossy scale
var Parent = MyMeshFilter.transform.parent;
MyMeshFilter.transform.parent = null;
MyMeshFilter.transform.localScale = NewScale;
MyMeshFilter.transform.parent = Parent;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。