当前位置: 代码网 > it编程>游戏开发>unity > 「Unity3D」场景中的距离单位Unit与相关设置PixelsToUnits、PixelsPerUnit

「Unity3D」场景中的距离单位Unit与相关设置PixelsToUnits、PixelsPerUnit

2024年08月03日 unity 我要评论
这就涉及到一个问题,即如何按照比例显示像素?或说如何显示2D图片的大小?

gameobject在场景的位置position,并没有明确是什么具体单位——如:transform的x、y、z,或recttransform的posx、posy、posz。而recttransform在面板上显示的width和height,也没有具体单位,其实并不是像素。

事实上,通过3ds max的模型导入unity,会发现unity的默认单位是米,也就是一个场景中的unit都是以米为具体单位。

这就涉及到一个问题,即如何按照比例显示像素?或说如何显示2d图片的大小?(3d的图片是以纹理形式蒙皮在模型上的,尺寸距离以模型的顶点为基准)

texture

那么,在texture导入的时候,如果是sprite(2d and ui)就会有一个设置,即pixelstounits——也就是多少像素为一个unity的单位unit,或说1米。

如图显示,默认是100个像素为1米,也就是100个像素,对应面板上的xyz / pos.xyz / width / height的1——更大数值图片更小,更小数值图片更大,这是sprite renderer的情况。

例如,一个图片1024x1024,pixelstounits是100,则这个图片在场景中的width与height就是10.24——会显得很小;如果pixelstounits是1,则width与height就正好是1024——会显得很大。

image

在image中,可以设置一个sprite,这时是将sprite塞入image的容器中,所以sprite越大像素密度越大,则显示越小(被压缩了),sprite越小像素密度越小(被拉伸了),则显示越大——这是sliced type情况。

但如果是tiled type,则是sprite平铺在image里面,所以sprite越大,则只能铺一部分(显示不全),sprite越小,则可以铺很多块(显示很多个小的sprite)。

canvas scaler

这个canvas scaler组件,可以缩放整个画布,那么画布之上的像素也会受其影响,有两个设置,即:dynamicpixelsperunit与referencepixelsperunit——前者缩放text(textmeshpro不受影响),后者缩放sprite——数值越大显示越小,数值越小显示越大。

(0)

相关文章:

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

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com