unity---射线


射线

 Ray ray= Camera.main.ScreenPointToRay(Input.mousePosition);//获得鼠标射向的射线
        RaycastHit hit;//射线碰撞物体
        if(Physics.Raycast(ray,out hit)){

            Debug.DrawLine(ray.origin,hit.point);//显示射线
           cursor.transform.position=Input.mousePosition;//imge准星移动到鼠标位置
        }

效果图展示

点击发射小球

  if(Input.GetMouseButtonDown(0)){
            GameObject addPosObj=GameObject.CreatePrimitive(PrimitiveType.Sphere);//创建小球
        
        //    addPosObj.GetComponent().color=Color.red;
            addPosObj.AddComponent();
            addPosObj.transform.position=Camera.main.transform.position;//位置固定在摄像头位置
            addPosObj.GetComponent().AddForce(100*(hit.point-addPosObj.transform.position));//给小球一个沿着碰撞物体的力
            Destroy(addPosObj,3);//5秒后自动销毁
        }

效果图展示