unity的动态加载?
1.Resources.load();//加载Resources文件夹内的文档
2.WWW加载//协同程序
3.AssetsBundle:
例:从资源包里获取指定类型的文件
AssetBundle ab = new AssetBundle();//AssetBundle可以由不同途径获取
TextAsset xml = ab.Load("xml",typeof(TextAsset));
1. 协同程序?
在MonoBehaviour主线程内开展的一段逻辑处理,协助主线程执行另一段程序。类似于开启另外一条线程单独处理一些特殊事情。
协同程序的特点:
拥有自己的内存堆栈,与其他程序共享全局函数。
协同程序开启后进入运行状态,遇到中断指令后暂停执行,返回主线程继续执行主线程。暂停指令结束后继续执行协同程序里余下的信息。
3.碰撞器和触发器的区别?
碰撞器(Collider)有碰撞效果,isTrigger = false;可以调用OnColliderEnter/Stay/Exit。
触发器没有碰撞效果,isTrigger = true; 一个触发器不会碰撞刚体,当一个刚体进入或者退出触发器时,将发送:OnTriggerEnter/Stay/Exit。
4.碰撞发生的必要条件?
两个物体必须带有碰撞器(Collider),一个物体还必须带有刚体(RigidBody)或则角色控制器(CharacterController,自带胶囊碰撞器,已经封装了一个刚体在里面)。
5.unity的保存数据的类(玩家偏好设置)?
PlayerPrefs.SetInt();
PlayerPrefs.SetString();
6.MonoBehaviour脚本的生命周期?
Awake->Start->Update->FixedUpdate->LateUpdate->OnGUI->Reset->OnDisable->OnDestroy
如图:
FixedUpdate:以指定的帧频执行。(在Edit -> project settings -> Time -> FixedTimestep 中设定该频率)
LateUpdate:MonoBehaviour脚本每一帧执行,所有Update函数执行完毕后执行LateUpdate函数。
7.物理更新?
物理更新放在FixedUpdate函数中执行,固定帧数执行,渲染效率低下时,FixedUpdate调用频率跟着下降。
8.游戏动画种类?
主要有关节动画,骨骼动画,单一网格模型动画(关键帧动画)
9.Unity实现2D游戏的方式?
1.使用自带的GUI。
2.将Camera的Projection(投影方式)设置成Orthographic(正交投影)不考虑Z轴。
3.使用插件 2D ToolKit
10.Unity物理引擎中添加力的方式?
RigidBody.addForce //添加一个力到刚体。作为结果刚体将开始移动。
RigidBody.AddRelativeForce//添加一个力到刚体。相对于它的系统坐标。
RigidBody.addForceAtPoint//在position位置应用force力。作为结果这个将在这个物体上应用一个力矩和力。
RigidBody .AddExplosionForce//添加一个爆炸力,爆炸力将随着到刚体的距离线形衰减。
11.Unity各种光照模式的光照强度的计算公式?
环境光照强度 = 环境光照强度 * 环境光照颜色
(Lambient = Aintensity * Acolor)
漫反射光照强度 = 漫反射系数 * 漫反射颜色 * 该点法向量.光源向量
(iDiffuse = Dintensity * Dcolor *N.L)
镜面反射强度 = 镜面光照强度 * 镜面光颜色 * (光的反射向量.观察者向量)^镜面光指数
(Ispecular = Sintensity * Scolor *(R.V)^n)
实际光照强度 = 环境光(lambient)+漫反射光(ldiffuse)+镜面高光(lspecular)