2 fangzhuozhen fangzhuozhen 于 2017.11.15 00:23 提问

Unity3d制做FPS,怎么从射击准星发出一条射线检测碰撞??

Unity3d制做FPS,怎么从射击准星发出一条射线检测碰撞??本人学生党一枚,正在尝试写一个fps,求各位大佬解答

1个回答

u013025452
u013025452   2017.11.15 03:04

前提条件:1、知道准星在屏幕上的坐标;2、知道准星的世界坐标
对上述两个条件 成立一个即可
对于1:
Ray ray = Camera.main.ScreenPointToRay(准星x,准星);
Physics.Raycast(ray);
对于2:
Ray ray = new Ray(准星world_x,准星world_y,准星world_z,方向);
Physics.Raycast(ray);

当然还要设置碰撞层 Physics.Raycast有多个重载方法,layerMask就是碰撞层了

fangzhuozhen
fangzhuozhen 准星是用GUI.DrawTexture做的,位置是在相机的镜头中间,那么现在准星的坐标是什么?是屏幕的坐标吗?
5 天之前 回复
Csdn user default icon
上传中...
上传图片
插入图片