目录
-
- 1.Unity3d脚本从唤醒到销毁有着一套比较完整的生命周期,列出系统自带的几个重要的方法。
- 2.Unity3D中的碰撞器和触发器的区别?
- 3.物体发生碰撞的必要条件?
- 4.简述Unity3D支持的作为脚本的语言的名称?
- 5. .Net与Mono的关系?
- 6.OnEnable、Awake、Start运行时的发生顺序?哪些可能在同一个对象周期中反复的发生?
- 7.移动相机动作在哪个函数里,为什么在这个函数里?
- 8.Unity提供了几种光源,分别是什么?
- 9.简述四元数Quaternion的作用,四元数对欧拉角的优点?
- 10.CharacterController和Rigidbody的区别?
- 11.简述prefab的用处
- 12.简述进程、线程、协程的概念
- 13.简述协程的作用
- 14.简述协程的底层原理
- 15.线程与协程的区别
- 16.简述Invoke与InvokeRepeating
- 17.简述Invoke与协程的区别
- 18.正在运行的脚本,隐藏物体与禁止脚本导致触发OnDisable时,Invoke与coroutine是否正常运行?
- 19.在物体发生碰撞的整个过程中,有几个阶段,分别列出对应的函数 三个阶段
- 20.Unity3d的物理引擎中,有几种施加力的方式,分别描述出来
- 21. 物体自身旋转使用的函数?物体绕某点旋转使用函数叫什么?
- 22.Unity3d提供了一个用于保存和读取数据的类(PlayerPrefs),请列出保存和读取整形数据的函数
- 23.Image和RawImage的区别
- 24.在场景中放置多个Camera并同时处于活动状态会发生什么?
- 25.如何销毁一个UnityEngine.Object及其子类?
- 26.请描述游戏动画有哪几种,以及其原理?
- 27.请描述为什么Unity3d中会发生在组件上出现数据丢失的情况
- 28.请描述Interface与抽象类之间的不同
- 29.如何安全的在不同工程间安全地迁移asset数据?三种方法
- 30.Unity3D是否支持写成多线程程序?如果支持的话需要注意什么?
- 31.如何让已经存在的GameObject在LoadLevel后不被卸载掉?
- 32.U3D中用于记录节点空间几何信息的组件名称,及其父类名称
- 33.向量的点乘、叉乘以及归一化的意义?
- 34. 为什么dynamic font在unicode环境下优于static font
- 35.请简述如何在不同分辨率下保持UI的一致性
- 36.请简述OnBecameVisible及OnBecameInvisible的发生时机,以及这一对回调函数的意义
- 37. 什么叫动态合批?跟静态合批有什么区别?
- 38.动态加载资源的方式?
- 39.Unity和cocos2d的区别
- 40.获取、增加、删除组件的命令分别是什么?
- 41.Unity中,照相机的Clipping Planes的作用是什么?调整 Near、Far两个值时,应该注意什么?
- 42.GPU的工作原理?
- 43.使用Unity3d实现2d游戏,有几种方式?
- 44.将Camera组件的ClearFlags选项选成Depth only是什么意思?有何用处?
- 45.在编辑场景时将GameObject设置为Static有何作用?
- 46.将图片的TextureType选项分别选为Texture和Sprite有什么区别
- 47.实时点光源的优缺点是什么?
- 48. 如何在Unity3D中查看场景的面数,顶点数和Draw Call数?
- 49. Addcomponent后哪个生命周期函数会被调用
- 50.层剔除
- 51.画布的三种模式.缩放模式
- 52.FSM有限状态机
- 53.行为树与有限状态机
- 54.简述行为树的概念及优缺点
- 55.Text 和 TMPText的区别 优缺点
- 56.红点系统的实现
- 57.Animation和Animator的区别
- 58.简述SkinnedMesh的实现原理
- 59.ScriptableObejct
- 60.unity常用资源路径有哪些
- 61.什么是协同程序?
- 62.什么叫做链条关节?
- 63.物理更新一般放在哪个系统函数里?
- 64.IL是什么?
- 65.什么是运行时(Runtime)?
- 66.Mono和IL2CPP有什么区别?为什么要使用IL2CPP?
- 67.什么是托管代码,什么是非托管代码?
- 68.Mono的垃圾回收机制
- 69.浮点数精度问题导致不同设备计算结果不同,有哪些解决方法?
- 70.什么时候用结构体,什么时候用类?
- 71.Destroy和DestroyImmediate的区别?
- 72.UI上的特效怎么被裁剪?
- 73.UGUI和NGUI区别
- 74.NGUI渲染过程
- 75.UGUI渲染过程
- 76.如何让粒子在界面上正确显示?
- 77. mesh与shareMesh,material与shareMaterial,materials和sharedMaterials的区别?
- 78.欧拉角,四元数,旋转矩阵优缺点
- 79.在开发过程中哪些地方比较容易造成内存泄漏问题?如何避免?
- 80.如果不想new,但又想获取对象实例,有哪几种方法?
- 81.假设一个回合制战斗,战斗过程均由客户端计算,请问使用什么方式使得服务器可以验证此场战斗的数据是合法的?
- 82.游戏中常用的设计模式
- 83.Assetbundle 的生命周期
- 84.如何判断客户端与服务器是否保持连接
- 85.什么是黏包
- 86.有限状态机和行为树区别
- 87.什么是扩展方法?
- 88.刚体中的Is Kinematic
- 89. 材质、贴图、纹理的关系
- 90.垂直同步对游戏帧率有什么影响
- 91.动画融合是怎么实现的
- 92.修改Time.timeScale会影响什么?
- 93.Unity3D 如何获知场景中需要加载的数据?如何动态资源加载
- 94.第一次执行GameObject.Instantiate的时候有明显卡顿,该怎么解决?
- 95.反向旋转动画的方法是什么?
- 96.写出Animation的五个方法
- 97.动画层(AnimationState Layers)的作用是什么?
- 98.Material 和Physic Material 区别?
- 99.LayerMask.NameToLayer()这个方法有什么作用?
- 100.Unity3d中static batching和dynamic batching 各有什么用?
- 101.Unity3d中Awake和Start 谁先执行,update和fixedUpdate 有什么区
- 102.Unity3D中的协程(coroutine)和C#线程之间的区别是什么?
- 103.localPosition 与Position 的使用区别?
- 104.Vector3.forward与Vector3(0,0,1)是一样的意思对吗?
- 105.去掉敏感字的程序(手写程序)
- 106.Unity3d中resources目录一般用来放些什么,打包的时候会有什么影响?
- 107.怎么判断两个平面是否相交?不能用碰撞体,说出计算方法
- 108.MeshCollider和其他Collider的⼀个主要不同
- 109.当⼀个细⼩的⾼速物体撞向另⼀个较⼤的物体时,会出现什么情况?如何
- 110.在Unity中如何是西安相机跟随角色?
- 111.在Unity中如何加载异步资源?
- 112.在Unity中如何实现角色动画?
- 113.在Unity中如何加载并播放音频?
- 114.如何在Unity中实现粒子效果?
- 115.在Unity中如何实现游戏的平台差异化处理?
- 116.在Unity中如何实现游戏对象之间的通信?
- 117.如何在Unity中实现多人联网游戏?
- 118.为何大家都在移动设备上寻求U3D原生GUI的替代方案?
- 119.举例Unity的四个特殊文件夹,分别是干什么用的?
- 120.Unity调整旋转
- 121.本地坐标系 世界坐标系
1.Unity3d脚本从唤醒到销毁有着一套比较完整的生命周期,列出系统自带的几个重要的方法。
- Awake —> OnEnable —> Start —> FixedUpdate —>Update —> LateUpdate—> OnGUl —> OnDisable —> OnDestroy
- 主要执行顺序
- 编辑器->初始化->物理系统->输入事件->游戏逻辑->场景渲染->GUI渲染->物体激活或禁用->销毁物体->应用结束
- 主要函数介绍
Reset 是在用户点击检视面板的Reset按钮或者首次添加该组件时被调用。此函数只在编辑模式下被调用。Reset最常用于在检视面板中给定一个最常用的默认值。
Awake 用于在游戏开始之前初始化变量或游戏状态。在脚本整个生命周期内它仅被调用一次,当脚本设置为不可用时,运行时Awake方法仍然会执行一次。Awake在所有对象被初始化之后调用,所以你可以安全的与其他对象对话或用诸如 GameObject.FindWithTag 这样的函数搜索它们。每个游戏物体上的Awke以随机的顺序被调用。因此,你应该用Awake来设置脚本间的引用,并用Start来传递信息 ,Awake总是在Start之前被调用。它不能用来执行协同程序。
OnEnable当对象变为可用或激活状态时被调用事件监听。
Start 在behaviour的生命周期中只被调用一次。