最近
因为对未来感到无限的迷茫,对找工作无比的焦虑,
疯狂的想让自己的
知识储备
达到招聘的要求,
疯狂的想先
做一个项目
,这样就可以让简历不那么空白
说到KMP,先说一下KMP这个名字是怎么来的,为什么叫做KMP呢。
因为是由这三位学者发明的:Knuth,Morris和Pratt,所以取了三位学者名字的首字母。所以叫做KMP
KMP主要应用在字符串匹配上。
KMP的主要思想是当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了。
所以如何记录已经匹配的文本内容,是KMP的重点,也是next数组肩负的重任。
Sequence contains no elements
请使用.FirstOrDefault()
而不是.First()
否则 ==队列为空时== 会报错 Sequence contains no elements
由异步的机制可以知道,BeginSend
和回调函数往往执行于不同的线程,如果多个线程同时操作writeQueue
,有可能引发些问题。
在图4-36所示的流程中,玩家连续点击两次发送按钮,假如运气特别差,第二次发送时,第一次发送的回调函数刚好被调用。
如果线程1的Send刚好走到writeQueue.Enqueue(ba)这一行(t2时刻),按理说writeQueue.Count
应为2,不应该进入if(writeQueue.Count==1)
的真分支去发送数据(因为此时writeQueue.Count==2
)。
Unity中开启碰撞检测至少需要一方拥有RigidBody
,通过OnCollisionEnter
方法检测到碰撞
如果我们需要对物理检测进行更精准的定位,可以修改它的检测模式和线性检测方法。将将body的检测模式更改为连续检测模式或者动态连续检测模式。将线性改为线性模式。
1 | Rigidbody rigidbody; |
经过以上调整,我们可以发现并没有得到很好的效果,子弹仍然会在穿墙之后爆炸或者不爆炸。
经过研究发现仍然问题仍然出现在子弹的速度过快。因为unity的物理是在fix update中进行。