设计5种形状,左L,右L,土,左Z,右Z。制作成预制体。
设计5种形状,左L,右L,土,左Z,右Z。制作成预制体。
设计2种下落的基本图形,方块和长条,先在Prefabs下建立文件夹Shapes,再利用Block预制体建立Shape1(方块)和Shape2(长条)并制作预制体,建立Tag标签Block,将Shape下的Block归类入Block标签,建立旋转中心点Pivot(不归类)。
设计游戏背景,Block方格放置在坐标轴0,0位置为一个背景方格(放在View下而不是Canvas下),做一个prefab,然后按住ALT复制水平排列(10格)(放到空物体Row下),纵向复制(20行)(整体放置到空物体Map下),再调整MainCamera的Size,将背景地图居中显示,并调整Block的颜色为浅灰色。
1. 技术人才永远不会饱和,技术人员稀缺,特别是高技术人才。就想上山一样,越是山顶人越少。
2.准备4个中小型项目,界面背包啥都有,直接给面试官看、试玩,发布到app store上(淘宝上买一个开发账号)
slot和item脚本比较重要,特别是slot中的各种方法,看的有点
1
foreach (object key in tab.GetKeys())
{
print(tab.Get<object>(key));
}
老师视频里foreach遍历类型是string,所以类型转换错误。
群组行为
play automatically自动播放动画(Animation)
映射到LuaFunction
func.Call(1,2)
3.映射到Dictionary<>,List<>
12Mesh合并代码
unity的性能优化
DoBeforeEntering当我们进入状态时会调用的方法
但是我的电脑正对门,又不敢
struct SubArray
{
public int startIndex;
public int endIndex;
int total;
}
static SubArray GetMaxSubArray(int low, int high, int[] array)
{
if(low == high)
{
SubArray subarray;
subarray.startIndex = low;
subarray.endIndex = high;
subarray.total = array[low];
return subarray;
}
SubArray subArray1 = GetMaxSubArray(low,mid,array);
SubArray subArray2 = GetMaxSubArray(mid+1,high,array);
//从[low,mid] 找到最大子数组[i,mid]
int total1 = array[mid];
int startIndex = mid;
int totalTemp = 0;
for(int i = mid;i >= low; --i)
{
totalTemp += array[i];
if(totalTemp > total1)
{
total1 = totalTemp;
startIndex = i;
}
}
//从[mid+1,high]找到最大子数组[mid+1,j]
int total2 = array[mid+1];
int endIndex = mid+1;
totalTemp = 0;
for(int j = mid+1;j <= high; ++j)
{
totalTemp += array[j];
if(totalTemp > total2)
{
total2 = totalTemp;
endIndex = j;
}
}
SubArray subArray3;
subArray3.StartIndex = startIndex;
subArray3.EndIndex = endIndex;
subArray3.total = total1+total2;
if(subArray1.total >= subArray2.total && subArray1.total >= subArray3.total)
{
return subArray1;
}else if(subArray2.total >= subArray1.total && subArray2.total >= subArray3.total)
{
return subArray2;
}
else {
return subArray3;
}
}
单一职责原则
开-闭原则
里氏替换原则
依赖倒置原则
接口隔离原则
最少知识原则(迪米特法则)
少用继承多用组合(合成复用)
《设计模式 可复用面向对象软件的基础》
《head First 设计模式(中文版)》
《设计模式与完美游戏开发》
这里算法。感觉可以写这样
for(int i = 0 ;i < len ; ++i)
{
int temp = 0;
for(int j = i; j < len; ++j)
{
temp += array[j];
if(temp > total)
{
total = temp;
startIdx = i;
endIdx = j;
}
}
}
分治法显示股票的价格波动解决了一个很有趣的问题--如何在哪天买入哪天卖出可以获得最大收益。
1.通过得到一个价格变动的数组中的子数组。(最大的和)则能确定哪天买入卖出收益最大。则将收益问题转换为最大子数组问题。
分离 队列 聚合。简单集群的三种状态。
分离:当前位置-目标位置=分离力的向量
foreach(GameObject neighbor in sperationNeighbors)
{
Vector3 dir = transform.position - neighbor.transform.position;
separationForce += dir.Normalize()/dir.magnitude;
//magnitude是长度,代表两点之间的距离
}
separationForce *= separationWeight;
权重用来控制整体的影响,如果物理计算得到的力没有达到预期,则乘以权重。
此处增加了一个权重public float SperatorWeight = 0f;