选择排序、冒泡排序、快速排序、插入排序、希尔排序,归并排序。
射线是3D世界中的一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射。
剪裁平面。从相机到开始渲染和停止渲染之间的距离。
GC回收堆上的内存
避免:1、减少new产生对象的次数
2、使用公用的对象(对象)
3、将String换为StringBuilder
LateUpdate,是所有的Update结束后才调用,比较适合用于命令脚本的执行。官网上的例子是摄像机的跟随,都是所有Update的操作完才进行摄像机的跟进,不然就有可能出现摄像机已经推进了,但是视角里还未有角色,所谓的空帧出现。
例如:输入 1/8+3/8 每个数字为1-9的整型,运算符左右为空格 输出 1/2 (要化简)(实现+-*/)
是指在显示器上为了显示出图像而经过的一系列必要操作。渲染管道中的很多步骤,都要将几何物体从一个坐标系变换到另一个坐标系中去。主要步骤有:
本地坐标->视图坐标->背面裁剪->光照->裁剪->投影->视图变换->光栅化。
一个M*N的矩阵,随机取K行,每一列中最多只有一个1(没时间记不清了)
有很多种方式,例如:
1、压缩自带类库;
2、将暂时不用的以后还需要是使用的物体隐藏起来而不是直接Destry掉;
3、释放AssetBundle占用的资源;
4、降低模型的片面数,降低模型的骨骼数量,降低贴图的大小;
5、使用光照贴图,使用多层次细节(LOD),使用着色器(Shader),使用预设(Prefab);
6、代码中少产生临时变量。
树的聚族索引,内存页,TCP报文,ACK,SYN,FIN......
一个角色有静止,攻击,跳跃,俯冲,闪避等几个动作,当不做任何操作时,角色播放静止动作。
1、设计一个抽象类表现角色的状态。
2、角色在静止时可以攻击,松开攻击键则攻击停止。
角色按键可闪避,跳跃当处于跳跃状态时可进行俯冲,
3、攻击开始时生成一个攻击开始特效,攻击结束生成攻击结束特效,跳跃开始生成跳跃特效,俯冲结束生成俯冲结束音效。
(具体按键已经给了枚举变量,特效与音效的函数已给出)
4、如果在跳跃,俯冲,下蹲过程中可以攻击,并当攻击结束要回到之前的状态,请设计一个具体思路和数据结构。
1、Resource.Load();
2、AssetBundle
区别:resource的方式需要把所有资源全部打入安装包,这对游戏的分包发布(微端)和版本升级(patch)所以unity推荐的方式是不用它,都用bundle的方式替代,把资源达成几个小的bundle,用哪个就load哪个,这样还能分包发布和patch,但是在开发过程中,不可能没更新一个资源就打一次bundle,所以editor环境下可以使用assetdatabase来模拟,这通常需要我们封装一个dynamic resource的loader模块,在不同的环境下做不同实现。
主要有关节动画、骨骼动画、单一网络模型动画(关键帧动画)。
关节动画:把角色分成若干独立部分,一个部分对应一个网络模型,部分的动画连接成一个整体的动画,角色比较灵活,Quake2中使用这种动画;
骨骼动画,广泛应用的动画方式,集成了以上两个方式的优点,骨骼按角色特点组成一定的层次结构,有关节相连,可做相对运动,皮肤作为单一网络蒙在骨骼之外,决定角色的外观;
单一网络模型动画由一个完整的网络模型构成,在动画序列的关键帧里记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,角色动画较真实。
Alpha Blend 实现透明效果,不过只能针对某块区域进行alpha操作,透明度可设。
sring a=new string("abc");
a=(a.ToUpper()+"123").Substring(0,2);
在C#中第一行是会报错的(Java中倒是可行)。
应该这样初始化:
string b=new string(new char[]{'a','b','c'});
5个临时对象。
1、基于连接与无连接
2、对系统资源的要求(TCP较多,UDP较少);
3、UDP程序结构较简单;
4、流模式与数据报(报文)模式;
5、TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。
TCP UDP
是否连接 面向连接 面向非连接
传输可靠性 可靠 不可靠
应用场合 少量数据 传输大量数据
速度 慢 快
List <int> Is=new List<int>(new int[]{1,2,3,4,5});
foreach(int item in Is)
{
Console.WriteLine(item *item);
Is.Remove(item);
}
产生运行时错误,在Is.Remove(item)这行,因为foreach是只读的。不能一边遍历一边修改。