最近听到这样一个需求,VR多人游戏的时候,当两个玩家面对面的情况下,才可以开始下一个流程:
听到一个人的解决方案是算距离,具体没问,觉得略感复杂,趁此机会也发挥程序与数学的相关性一直很强,从此篇开始会专门写一些程序与数学应用的博客。
好了切入正题,每个角色都有它的朝向,就是transform.forward,代表它的前方朝向,计算两个角色的朝向,在位置区域被物理限定的情况下,就是不会出现两个人向背的情况,两个forword的点乘的值是0代表垂直,1代表同方向,-1代表相反方向,也就是我们的面对面。
如此简单的解决相问题哈:
下面直接看我们的实例:
1.场景中两个角色代表
2.脚本如下:
3.运行结果动画如GIF:
可以看到打印日志,接近0的时候垂直,接近-1的首时候相对,当然实际项目中不需要精准的面对面,只要值得范围控制在-0.8到-1的范围。
好了,今天就到这里,下一篇会考虑一下问题:
1.向背的情况处理
2.两个角色在多大范围里处理相对问题
========