
这句的小括号匹配有问题
漏了一个反向的小括号
原文链接: http://www.manew.com/thread-102595-1-1.html
碰撞检测,就是检测两个物体是否相交,如果物体非常规则,比如球体,直接检测圆心距离是否小于半径和即可,计算量十分小,但是,如果物体不规则,比如一个角色,进行十分细致的碰撞检测就会变的十分困难,这时候,我们一般会用简单几何体去逼近复杂网格
为了解决这个 问题 ,unity里使用了空间划分技术,目前主流的划分技术有BSP,BHV,八叉树,四叉树
首先选定一个面作为根节点(一般会选两侧物体数量大致相同的面),然后遍历物体,如果物体在此面正面,将其加入到左子节点,如果在反面,加入到右子节点,如果和此面相交,加入左右两个子节点,之后,将左右子节点作为新的根节点进行递归,
构建完成后,在检测时,只要检测同一叶子节点的所有物体就行了
这里注意,检测物体位于哪面一般使用长方体来进行近似的,大家用unity的时候可能也注意到,gameobject有width和height两个属性,这两个属性很可能是用来进行划分的
这两个其实原理相同,上面是四叉树,类比到3d空间就是八叉树
这时,我们可以发现,如果碰撞体位移了,或者碰撞网格改变了,树的结构也会随之变化,这里我猜测,unity内部会有静态和动态两种树,静态树时预先计算好的,而动态树则会在有物体位移时重新计算,而动态树很可能也有相关优化,比如子物体多的物体会单独维护一个树,再将其作为动态树的子树
而这里有个问题,物体位移时树是会改变的,碰撞不会出现问题。但碰撞网格在运行时改变的话,碰撞会失效,如果我们动态生成一个物体,为其加入网格碰撞器,那么,它仍然不会有碰撞检测,可能是由于树没有更新,也有可能逼近算法没有执行,解决办法是,生成物体后,调用Setactive(false),然后Setactive(true)
在OnEnable里,会调用函数生成对网格进行碰撞检测所需的信息
接下来说一下连续碰撞检测的问题,上图说明了不同collisiondectection的物体是否进行连续检测
H5是Html5的缩写”,这恐怕是很多人的一个错误认知。事实上,二者并不是一个意思。
H5确实涉及HTML5诸多规范,想做H5页面或多或少都要利用到HTML5很多内容。但二者只是有联系,并非对等。
随着H5的火爆,同时也引起了技术阵营与营销阵营的定义争锋,当时在互联网上两方大打口水之战,对定义展开了一场博弈,结果虽然是技术阵营妥协,但也有利的证明了HTML5和H5根本不是一个层面的东西!
除了把H5误认为是Html5的缩写外,还有一些人存在另一种误区,那就是“H5=微信网页”。事实上,这也是不对的。
从切身体验来说,H5似乎是基于微信的网页,但实际并非如此。大多数情况下,我们是通过朋友圈和微信群观看H5的,但实际上我们利用任何浏览器都可以观看H5,不管是 PC端还是平板端。跳出朋友圈,H5依然可以被浏览,它的特效和演示甚至比你在微信看会更加流畅!
原来是因为微信集成了移动端浏览器,离开微信,H5照样可以正常运行,只是因为人们习惯了通过朋友圈打开H5来观看网页。所以,H5并不是微信网页,它是一个更大的概念,只是因为微信巨大的用户群,让H5集中于微信,让人们觉得这个页面就是微信独有的,也让H5和微信朋友圈成为了代名词。
H5到底是什么意思,其实真的很难把它用概念的形式来讲清楚。因为H5更像是国人制造的一个专有名词,就像是我们喜欢把“苹果 7”说成是“肾7”一样。但H5就坏在它看上去像是个英文缩写,似乎是某种尖端技术,实际上国外根本没有这个说法,老外都不知道这个H FIVE是什么东西。
H5所涵盖的范围其实很大,它不是 HTML5、不是微信网页、不是移动PPT。相反,从某种意义上来说,它是这些东西的母级,H5所指的就是移动网页本身,它能够包含所有这些分支。
如果你对H5感兴趣的话,戳出这里:网页链接,海量H5免费视频教程任你挑!
对于学习前端有任何不懂的可以随时来问我,我给你提供一个非常不错的前端交流学习qun:前面是一一四,中间是一八八,后面是四九三一。有问题就在里面问我,这样你可以少走很多弯路,做起来有效率,记得多跟有经验的人交流,别闭门造车。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)