映射到LuaFunction
func.Call(1,2)
映射到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;
U3D中定时器函数 InvokeRepeating(函数名,隔多少时间后调用,每次调用间隔时间)
获取球体范围内的碰撞体
Physics.OverlapSphere(起始点,半径);
service-command-mediator-view
尽量不要使用数据库主键自动增长,高并发的情况下会出现ID重复,而且这样的话,因为数据库本身是单点的,不可以拆库
单例模式
private static UIManager _instance;
public static UIManager Instance{
get{
if (_instance == null)
_instance = new UIManager();
return _instance;
}
}
### StrangeIoC介绍(MVCS)
- 在github上或者AssetsStore上引入
DI依赖注入
MVC设计模式
不要为了装逼使用设计模式
1、规范自己的代码
2、