(由于lz现在手上没有好的特效和模型,所以姑且先用我有的几个烂特效和模型演示一下)Unity给我们提供了RaycastHit类和Physics.Raycast()函数来用做射线判断,也就是最基本的弹道判断,官方对这一块的解释非常详细,由于LZ语言表达能力实在薄弱,所以就把这两个链接发一下,各位自己有兴趣看看吧:
http://docs.unity3d.com/ScriptReference/RaycastHit.html
http://docs.unity3d.com/ScriptReference/Physics.Raycast.html
编程过程具体如下,首先用这两句代码将鼠标锁定到屏幕中心并隐藏(Unity5.0以后是这样的,5.0之前是Screen.lockCursor = true;)
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
其次发射一条射线从主摄像机到屏幕中心,也就是鼠标的位置,用这一句代码就可以发射射线到屏幕中心的位置了:
Ray myRay = Camera.main.ScreenPointToRay(Input.mousePosition);
然后就是碰撞判断,需要判断碰撞的物体是敌人或者其他物体时:
RaycastHit myHit;
if (Physics.Raycast (myRay, out myHit)) {
//当弹道碰撞到物体时触发If语句中的内容
}