使用 Unity 引擎时有哪些禁 忌?

2020-05-17 13:57发布

1条回答
男孩无衣
2楼 · 2020-05-18 09:50


我给你说说我遇到的坑:

①不到万不得已,不要用多线程。使用多线程一定要谨慎,新手勿碰。

②对性能稍微要求高的,不要使用物理组件,不要使用实时灯光。

③不要使用Terrain这个玩意,它是给新手热手的。实在找不到了再用。

④不要使用UNet,官方自带的这个早期版本的网络系统,跳进去就出不来了。没有一定的功力,千万别用。

⑤版本一定要提前选好,有必要时进行论证。不到万不得已,不要做大版本迁移。


以上算是达到“禁忌”的程度,还有很多很多小的注意事项,有些是涉及优化,有些是涉及bug的。 

除此之外,我觉得在模型上的对接工作,坑很多。


①模型比例要统一。

②顶点数和面数要合规, 在这里我占用一些篇幅,给你整理一下, 非常宝贵的资料,原创:

在Unity中,默认支持fbx和obj格式的模型,这两种模型都可以使用3DMax或者Maya等软件生成,但是在生成过程中,需要注意以下点哦~
1.单位、比例统一
在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序需要缩放也可以统一调整缩放比例。统一单位为米。
2. 模型规范
(1)所有角色模型最好站立在原点。没有特定要求下,必须以物体对象中心为轴心。
(2)面数的控制。移动设备每个网格模型控制在300-1500个多边形将会达到比较好的效果。 而对于桌面平台,理论范围1500-4000。如果游戏中任意时刻内屏幕上出现了大量的角色,那么就应该降低每个角色的面数。比如,半条命2对于每个角色使用2500-5000个三角面。
正常单个物体控制在1000个面以下,整个屏幕应控制在7500个面以下。所有物体不超过20000个三角面。
(3)整理模型文件,仔细检查模型文件,尽量做到最大优化,看不到的地方不需要的面要删除,合并断开的顶点,移除孤立的顶点,注意模型的命名规范。模型给绑定之前必须做一次重置变换。
(4)可以复制的物体尽量复制。如果一个1000面的物体,烘焙好之后复制出去100个,那么他所消耗的资源基本和一个物体消耗的资源一样多。
3. 材质贴图规范
(1)我们目前使用的Unity3D软件作为仿真开发平台,该软件对模型的材质有一些特殊的要求,在我们使用的3dsMax中不是所有材质都被Unity3D软件所支持,只有standard(标准材质)和Multi/Sub-Objiect(多维/子物体材质)被Unity3D软件所支持。注:Multi/Sub-Objiect(多维/子物体材质)要注意里面的子材质必须为standard(标准材质)才能被支持。
(2)Unity3D目前只支持Bitmap贴图类型,其它所有贴图类型均不支持。只支持DiffuseColor(漫反射)同self-Illumination(自发光,用来导出lightmap)贴图通道。 Self-Illumination(不透明)贴图通道在烘焙lightmap后,需要将此贴图通道channel设置为烘焙后的新channel,同时将生成的lightmap指向到self-Illumination。
3. 贴图文件格式和尺寸
原始贴图不带通道的jpg,带通道的为32位tga或者 png,尺寸最大别超过2048,贴图文件尺寸须为2的N次方 (8、16、32、64、128、256、512、1024)最大贴图尺寸不能超过1024x1024,特殊情况下尺寸可在这些范围内做调整。
4. 贴图材质应用规则
(1)贴图不能为中文命名,不能有重名
(2)材质球命名与物体名称一致,材质球的父子层级的命名必须一致
(3)同种贴图必须使用一个材质球
(4)除需要用双面材质表现的物体之外,其他物体不能使用双面材质
(5)材质的ID和物体的ID号必须一致
(6)若使用completemap烘焙,烘焙完毕后会自动产生一个shell材质,必须将shell材质变为standard标准材质,并且通道要一致,否则不能正确导出贴图
(7)带Alpha通道的贴图存储为tga或者png格式,在命名是必须加_al以区分
(8)模型需要通过通道处理时需要制作带有通道的纹理,在制作树的通道纹理是,最好将透明部分改为树的主色,这样在渲染是可以使有效边缘部分的颜色正确,通道纹理在程序渲染时占用的资源币同尺寸的普通纹理要多.通道纹理命名时应以_al结尾
5. 模型烘焙及导出
模型的烘焙方式有两种:
(1)一种是LightMap烘焙贴方式,这种烘焙贴图渲染出来的贴图只带有阴影信息,不包含基本纹理。具体应用于制作纹理较清晰的模型文件(如地形),原理是将模型的基本纹理贴图和LightMap阴影贴图两者进行叠加。优点是最终模型纹理比较楚,而且可以使用重复纹理贴图,节约纹理资源;烘焙后的模型可以直接导出FBX文件,不用修改贴图通道。缺点是LightingMap贴图不带有高光信息;
(2)另一种是CompleteMap烘焙方式,这种烘焙贴图方式的优点是渲染出来的贴图本身就带有基本纹理和光影信息,但缺点是没有细节纹理,且在近处时纹理比较模糊。
(3)烘焙贴图设置。
在进行completemap烘焙方式设置时应注意:贴图通道和物体uv坐标通道必须为1通道,烘焙贴图文件存储为tga格式,背景要改为与贴图近似的颜色;
lightingmap烘焙设置时,和completemap设置有些不同,贴图通道和物体uv坐标通道必须为3通道,烘焙时灯光的阴影方式为adv.raytraced 高级光线跟踪阴影,背景色要改为白色,可以避免黑边的情况。
主要物件的贴图uv必须手动展开。
6. 模型绑定及动画
骨骼必须为IK、CAT、BIP三类,unity不认虚拟体动画,单个物体骨骼数量不超过60个。
动画帧率、帧数的控制,一般情况下为每秒10帧,一个动画尽量控制在1秒内完成。
7. 导出注意事项
(1) 导出格式:FBX和OBJ(不能包含动画)
(2) 静态模型面数限制和UV
(3) 动画模型骨骼绑定类型和骨骼数量限制
(4) 模型贴图分辨率和UV层数
(5) 模型动画:一个FBX或者模型和不同的动画片段分别为不同FBX
(6) 不同模型之间FBX融合
(7) 模型LOD的导出和规范
(8) Group的使用规范
(9) 重复模型的导出规范
(10)模型精简的规范


这个也作为初学者,到公司后的接洽标准。 

相关问题推荐

  • 回答 5

    第一种方法:通过点击场景文件打开Unity游戏工程找到Unity游戏工程所在的目录,我这里的工程放在在E盘根路径的Unity_workspace文件夹中。注意:unity软件不支持中文路径,所以不要把工程放在中文文件夹下。我们在这里就打开New Unity Project 4工程,进入到Ne...

  • 回答 13
    已采纳

    如果是学习研究的话,当然是体验官方的最新版本。要是项目开发的话,还是要选择长期稳定版本,也就是大版本的LTS。比如2017.4或者是2018.4都是LTS版本,至于后面的小版本可以去看下更新的内容来做选择吧!...

  • 回答 9

    unity3D是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC...

  • 回答 11

    1、Unity3D:如果你需要开发大型游戏,或需要开发3D游戏的,请选这个。2、Cocos2D-x:如果你开发的是中小型游戏,对安装包大小比较在意的,请选这个。3、Andengine、Cocos2D-iPhone:如果你只为开发单平台游戏,又非常在意速度和安装包大小,请选这个。最后。...

  • 回答 11

    首先在场景中调整好你要观看的视角选择摄像机,按下Ctrl+Shift+F或者菜单栏->GameObject->Align with view在不行的话,可以调整摄像机的Position 和 Rotation

  • 回答 5

    将MeshRender组件移除即可:

  • 回答 9

    1.在Asset store里选择一个skybox。 2.从素材库中选择一个人物角色,也可以自己建模或者在其他软件中做好再导进来。 3.想好角色如何运动,然后用自己比较熟悉的语言编写来作展示,这段代码可以实现当你按下键盘上的A/D/S/W的按键时,角色会向前后左右四个方向的...

  • 回答 17

    还是要学好编程基础呀如果你觉得编程很苦难 不一定要从c#开始学  学学js flash as等等  有个梯度就好多了如果要用好unity  不会编程那是不行的  学习的过程中都有个头疼的过程  记住  头越痛  代表你要接受的东西越多  坚持 你的大脑在和知识兼容中:D...

  • 回答 4

    xcel 表的操作少不了要引入第三方库,首先我们需要引入 Excel.dll 和 ICSharpCode.SharpZipLib.dll,这两个类库在网上都能找到;然后我们还需要引入 System.Data.dll,这个类库在 Unity3D 的安装路径下的 Editor\Data\Mono\lib\mono\unity 文件夹下能找到...

  • 回答 1

    需要添加如下引用: System.Configuration System.Data System.EnterpriseServices System.Security System.XML using UnityEngine; using System.Collections; using System;  using  System.Data;  using System.Data...

  • 物理引擎问题2021-06-15 17:35
    回答 4

    物理引擎则使用动量、扭矩等用高等数学手段来模拟真实物体,这将得到更真实的效果且使我们的编码更加容易。

  • 回答 1

    不能这样表述,三维通常是立体的空间,二维则是平面的。数学中通常是Oxyz表示空间直角坐标系,Oxy表示表示的是平面直角坐标系,你可以说空间直角坐标系中去掉Z轴可以转换为二维,因为去掉X或Y轴都能转换为二维。...

  • 回答 2

    GameObject.renderer.enabled//是控制一个物体是否在屏幕上渲染或显示 而物体实际还是存在的 只是想当于隐身 而物体本身的碰撞体还依然存在的GameObject.Destroy()//表示移除物体或物体上的组件 代表销毁该物体 实际上该物体的内存并没有立即释放,而是等到这...

  • Canvas三种渲染模式2021-04-29 19:50
    回答 10

    一:Overlay—覆盖模式类似于手机贴膜,所有UI都会显示在场景中2D,3D物体的上层在同一个Canvas下可以调整Canvas子物体的先后顺序,层级面板中越靠上则先被渲染多个Canvas下可以调整Canvas组件的Sort Order属性调整渲染顺序,数值越小的画布越先被渲染:Camer...

  • Unity引擎2021-04-29 19:47
    回答 4

    不得不说,Unity3d是个解放生产力的游戏引擎,自带了各种编辑器,可以进行一系列的可视化操作。需要注意的是,unity3d适合FPS游戏,物理游戏等中小型的游戏,并不太适合MMO开发。unity3d难学吗?如何学习unity3d呢?在学习之前又应该了解哪些内容呢?代码写不...

  • 回答 3

    不是人工检查的,如果你的问题里面有敏感关键字,是发不出去的,现在国内所有的网站在发布文章时都要进行检查的,所以你在发之前先检查一下看问题里面是否有违禁词语。

没有解决我的问题,去提问