响应式网站建站价格,济南正规网站制作品牌,国内新闻50条简短,建e网室内设计Pixels Per Unit在图片导入到Unity的时候#xff0c;将图片格式设置为Sprite的情况下会出现#xff0c;其意思是精灵中的多少像素对应世界中的一个单位#xff0c;默认是100
1. 对于在世界坐标中
在世界坐标中#xff0c;一般对于Sprite的应用是Sprite Renderer组件 使…Pixels Per Unit在图片导入到Unity的时候将图片格式设置为Sprite的情况下会出现其意思是精灵中的多少像素对应世界中的一个单位默认是100
1. 对于在世界坐标中
在世界坐标中一般对于Sprite的应用是Sprite Renderer组件 使用一张100 * 100分辨率的图片 将相机设置为正交相机同时将Size设置为0.5因为orthographicSize表示相机垂直视体大小的一半设置为0.5就代表此时相机的垂直视体大小为一个单位 发现此时图片的长度刚好撑满相机的垂直视体长度应该是因为此时世界中的主体是Sprite Renderer而其Scale是1所以刚好对应一个世界单位此时orthographicSize 0.5正交相机的高度就是一个世界单位
2. 对于UI系统来说当Canvas是Overlay模式时
当Canvas是Overlay模式时 在Canvas Scaler中有一个referencePixelsPerUnit属性
其意思为“如果精灵具有此“每单位像素Pixels Per Unit”设置则精灵中的一个像素将覆盖用户界面中的一个单位”。默认是100
对于Image来说它也有一个Pixels Per Unit属性 其最终计算结果是Sprite的 PPU / Canvas的referencePixelsPerUnit 其中SetNativeSize方法有用到这个Imgae的Pixels Per Unit属性 这个方法的意思是调整图像大小以使其达到像素完美这意味着将图像的 RectTransform.sizeDelta 设置为与精灵的尺寸相等。 在这个方法中通过Sprite的宽高和Image的PPU比值来得到当前图片的sizeDelta且将anchorMin和anchorMax聚拢在一点当锚点聚在一起时此时的sizeDelta就是图片的大小而pixelsPerUnit又等于spritePixelsPerUnit / m_CachedReferencePixelsPerUnit所以此时 图片的尺寸 Sprite宽高 / (Sprite 的PPU / Canvas的referencePixelsPerUnit)
- 当Sprite的PPU 100 Canvas的RPPU 100Sprite的尺寸是100 * 100时 图片尺寸 100,100/ 100 / 100 100,100 点击SetNativeSize查看Image的宽高 符合计算结果
- 当Sprite的PPU 50Canvas的RPPU 100Sprite的尺寸是100 * 100时
点击一下SetNativeSize 此时Imgae的长宽变成了200即100,100/ (50 / 100) (200, 200)符合计算规则
即当在其他情况不变的情况下Sprite的PPU越大在UI中的Image的原始尺寸越小
3.Image的PPU的其他应用 在计算ILayoutElement的preferredWidth和preferredHeight时也有用到
4. 当Canvas为World Space模式时 Camera的Size为0.5 此时Image的宽高需要是1才能让相机视体的高刚好撑满图片 在官方文档中有说明是Sprite中的每一个像素将覆盖世界中的一个单位所以此时一个单位像素对应一个世界单位
参考链接帮你理清Unity中的Pixels Per Unit