博文: https://blog.csdn.net/u014361280/article/details/116793595
涉及的源代码工程,仅供参考学习,实现原理介绍:
1、Editor 通过 鼠标移动转换为旋转为 镭射线的旋转数据
2、手机设备中通过获取陀螺仪 gyro 数据旋转为 镭射线的旋转数据
3、镭射使用(这里使用LookAt方式,具体见代码)上边获取到的旋转数据,然后作为射线发射方向,碰撞到物体的距离作为 镭射实体的长度
4、物体GameObject 挂载脚本,继承 ILaserRayGameObjectListener ,即可获取到镭射进入,退出,点击,抬起,按下等事件
5、UI 使用 Curved UI ,设置为 Custom_Ray 交互,更改对应 EventSystem 交互系统,即可正常 UGUI world 模式使用
6、Shake Phone 摇晃手机 可以Reset 镭射交互方向置于屏幕中间位置区域,便于简单修复由于手机陀螺仪自己漂移造成镭射飘走