Unity 美术规范

UI规范

  • 图片及图集资源命名由英文字母、数字、下划线组成 可以用拼音,不能用中文;
  • 一个文件夹下只能有一个图集的资源;
  • 单个图片长或宽超过512的应该归类为rawTexture,图集的大小不要大于1024;可以适当地使用unity的图集自动拆分的机制;
  • 样式比较单调的图片尽量是使用9宫格;
  • 控制Font的个数,不超过3个。精简单个font的大小 一般10M左右。
  • 无透明通道的图片要使用jpg或24位tga,有透明通道的图片使用png或32位tga;
  • 所有的带中文字的图片应该合并在一两个图集内;

特效

材质球标准

命名

  • 英文(或拼音)、_、数字组成
  • 不能出现中文的名称

材质球贴图

贴图文件格式和尺寸

  • 原始贴图不带通道采用24位tga或者jpg格式,带通道的为32位tga或者png,尺寸最大别超过1024,贴图文件尺寸须为2的N次方 (8、16、32、64、128、256、512、1024)最大贴图尺寸不能超过1024x1024,特殊情况下尺寸可在这些范围内做调整。
  • 贴图最好要是2的幂次方,(4的倍数也行,至少能使用dxt1)

贴图材质应用规则

  • 贴图不能为中文命名,不能有重名;
  • 材质球命名与物体名称一致,材质球的父子层级的命名必须一致;
  • 战斗中的角色,除了特殊部件(翅膀等)一律不使用透明材质;贴图长宽相等,符合pot,128-256为主,最大不超过512;
  • 同一个贴图除特殊情况外,都只能对应一个材质球;

材质球的GPU Instancing和Batch

  • 优先Batch,其次才是Instance;

Shader

Shader的应用规则

  • Unity默认自带的Shader不能直接使用;如果需要使用,应该从Unity里拷贝出来,修改前置归类后才可放入工程中使用;
  • Unity的Surface Sahder能不用就不用!优先使用Vertex Fragment Shader;
  • Shader文件应该进行功能性分类(eg:战斗才使用的放置在Fight目录);
  • 从其他地方弄来的shader需要先经过检查没问题后方可使用,不可以直接使用

Shader的书写规则

  • Shader的Shader "Features/NoFog_Unlit_name"应该有归类及其特性说明;
  • 如果该shader不需要使用Fog,就关闭fog(Fog {Mode Off});其他特性雷同;
  • Shader尽可能不要多Pass;
  • Shader的FallBack尽可能不要使用unity默认的(或者不使用FallBack);如果没有十足的把握,可以改为FallBack "Custom/DiffuseMy"
  • Shader里尽可能使用GPU Instancing;
  • 尽可能使用特性对应的shader,eg:如果不需要fog的就不要使用带有fog特性的shader;
  • Shader的变种应该尽可能控制在1个,如果一定要做多个,尽可能控制在10个以内;
  • Shader的高阶、复杂的函数尽可能不使用(eg:sin、cos等);

UGUI

overdraw

ugui的overdraw不要重,具体可以在unity的视图中查看ui的overdraw

raycast

这里看看

mask

recalculate mesh

由于ugui的Canvas在判定有node修改是,会将旗下的所有node的顶点都重新计算一次;所以在制作ugui的时候,我们需要将经常变动的ui控件和不变动的控件区分放置

Animation & animator

ui动画一般都不会很复杂,在比较简单的情况下,尽可能使用animation,尽量不要使用animator这种复杂的!