面试 3(unity编辑器基础)

1, 请描述游戏动画有几种,及其原理

主要有关节动画,单一网格模型动画(关键帧动画),骨骼动画.关节动画把角色分成若干个独立部分,一个部分对应一个网格模型,部分的动画连接成一个整体的动画,角色比较灵活Quake2中使用了这种动画,单一网络模型动画由一个完整的网格模型构成,在动画序列的关键帧里记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,角色动画较真实.骨骼动画,广泛应用的动画方式,集成了以上两个方式的优点,骨骼按角色特点组成一定的层次结构,由关节相连,可做相对运动,皮肤作为单一网格蒙在骨骼之外,决定角色的外观,皮肤网格每一个顶点都会受到骨骼的影响,从而实现完美的动画(骨骼动画是由关节动画发展而来的,如今基本都使用骨骼动画来实现角色动画)

2, GUI与UGUI的优点和缺点

GUI不方便控制,UGUI所见即所得,方便控制,GUI在声明周期OnGui中使用,脚本书写控制,UGUI使用Canvas画布和事件系统,UGUI适应屏幕上比GUI简单

3, 一个场景放置多个Carmera并同时处于活动状态,会发生什么

实际看到的画面由多个Camera的画面组成,由depth,Clearn Flag,Culling Mask都会影响最终合成效果

4, 使用过哪些第三方插件

界面制作   NGUI

2D游戏制作  2DToolkit

可视化编程 playMaker

插值插件  iTween, HOTween

路径搜寻  Simple Path

美术及动画制作  RageSpline,Smooth Moves

画面增强 Bitmap2Material,Strumpy Shader Editor

摄像机管理  Security Camera

资源包 Nature Pack

造路插件 EasyRoads3D

 5, Render的作用? 描述MeshRender和ShinnedMeshRender的关系与不同

mesh就是指模型的网格,MeshFilter一般是用于获得模型网格的组件,而MeshRender是用于把网格渲染出来的组件

6.MeshCollider和其他Cliilder的一个主要不同点?

MeshCollider是基于顶点的,建议还是用boxcollider,boxcollider本身是基于算法,没有面的概念

7, CharacterController和Rigidbody的区别

Rigibody具有完全真实物理的特性,而CharacterController可以说是受限的Rigidbody,具有一定的物理效果但不是完全真实的

8, 什么叫做链条关节

HingeJoint,他可以模拟两个物体间用一根链条连接在一起的情况,能保持两个物体在一个固定距离内相互移动而不产生作用力,但是达到固定距离后就会产生拉力(简单说就是弹簧)

9, U3D提供了几种光源  分别是什么

平行光:Directional Light

聚光灯: Spot Light

点光源:Point Light

区域光源:Area Light(只用于烘焙)

10, NGUI和UGUI的优点和缺点

NGUI还保留着图集,需要进行图集的维护,而UGUI没有图集的概念,可以充分利用资源,避免重复资源.

UGUI出现了字锚点的概念,更方便屏幕自适应

NGUI支持图文混排,UGUI暂未发现支持此功能

UGUI没有继承Tween组件

11, UGUI和NGUI的区别?为什么不用NGUI 

UGUI的Canvas有世界坐标和屏幕坐标,NGUI有2D和3D的区别

UGUI的image可以使用material

UGUI通过Mask来裁剪,而NGUI通过Panel的Clip

NGUI的渲染前后顺序是通过Widget的Depth,而UGUI渲染顺序根据Hierarchy的顺序,越下面渲染在顶层

    UGUI 不需要绑定Colliders,UI可以自动拦截事件

    UGUI的Anchor是相对父对象,没有提供高级选项,个人感觉UGUI的Anchor操作起来比NGUI更方便

UGUI没有Atlas一说,使用Sprite Packer

UGUI的Navgation在Scene中能可视化

UGUI的事件需要实现事件系统的接口,但写起来也算简单

NGUI功能更丰富一些

之所以不用NGUI是因为UGUI是Unity官方推出的,慢慢会成为制作UI 的主要工具,配套的插件也越来越多.

12,  Unity中Awake和Start谁先执行,Update和fixedUpdate有什么区别?

Awake先执行,Update是在每次渲染新的一帧的时候才会调用,FixedUpdate,是在固定的时间间隔执行,不受游戏帧率的影响,FixedUpdate的时间间隔可以在项目设置中更改,Edit->Project Setting->time找到Fixed timeestep就可以修改了

13, Mesh Renderer组件从Mesh Filter组件中获得网格信息,并根据物体的transform组件所定义的位置进行渲染

14, 在Unity中创建地形系统  Terrain->Create Terrain

15, 在场景中添加风  GameObject->Create Other->Wind Zone造风

猜你喜欢

转载自blog.csdn.net/qq_41764460/article/details/81584983