unity 图片导入及其使用方法

2019-04-18  本文已影响0人  qiaoqiao123
  1. material -> picture(png)放上去 然后作为贴图贴上去

贴图(Texture)和精灵(Sprite)。我们可以简单的理解为3D(模型使用的)图片和2D(UI使用的)图片。在可以直接选择Texture Type去更改你的导入方式。

Texture

Sprite

MiniMap

图片资源在导入为Sprite后,我们可以看到一个MiniMap选项,该选项是生成该图片的低分辨图片(1/2,1/4,1/8。。。),这些小图会使生成的资源文件变大1/3,但是在3D渲染时Unity会根据物体显示的大小(或者距离?)自动选择不同的分辨率以提高渲染效率。
一般来说,Sprite不会有这种需求,所以关闭这个选项可以减少包体的大小。

而对于Texture,同样可以取消。Texture和Sprite实际上只是Unity的两种预设,当你在Texture Mode上选择Advance时,你会有很完全的导入选项。如果你确定你的3D物体不会有很多的远近变化时,选择Advance,取消MiniMap会是一个很正确的选择。而对于一般的3D物体,MiniMap带来的效率提高是值得你和用户去花费这点储存空间的。

既然Unity可以使用PSD,那么你何必让美术去导出png呢?
PSD在导入速度上不比png和jpg慢(理论上应该会快,没测试),不过文件大小确实会变大。但是如果直接使用PSD,并要求美术直接在项目目录里进行资源管理和维护,实际上是在团队流程中省出了所有不必要的压缩格式文件(再次强调,导入资源使用的文件大小并不会影响最终的包体大小 )。
当然如果经常出现美术破坏项目目录结构的情况(上传非必要文件,命名不规范等),还是把文件发给程序比较好,而这种情况使用psd还是png那就见仁见智了,psd没有预览还是很难受的。(一般程序猿学PSD的基本操作比美术学SVN或者Unity都要快的多)

Sprite Packer + AssetBundle的注意事项

当你在使用AssetBundle时,你的Sprite引用实际上是Sprite Packer生成的图集的引用。所以在AssetBundle上,即便你只使用到一个图集中的一个小像素,Unity也会将该图集完整地打入AssetBundle中。所以Sprite尽量在Bundle的分包基础上去分图集。

可能会出现的问题及其解决方法

Canvas 的 Render Mode

Screen Space-Overlay的作用是让Canvas永远前置在所有对象之前,不会被遮挡,可以用作制作血条、聊天框等固定前置的部件;

Screen Space-Camera的作用是将Canvas绑定一个摄像机,可以根据摄像机的Depth(相机深度)来调整和其他摄像机之间的显示次序,这里用到的原理就是这个;

参考资料

Unity3D 图片资源导入的一些基础知识

上一篇 下一篇

猜你喜欢

热点阅读