射线
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<Material>().color=Color.red;
addPosObj.AddComponent<Rigidbody>();
addPosObj.transform.position=Camera.main.transform.position;//位置固定在摄像头位置
addPosObj.GetComponent<Rigidbody>().AddForce(100*(hit.point-addPosObj.transform.position));//给小球一个沿着碰撞物体的力
Destroy(addPosObj,3);//5秒后自动销毁
}
效果图展示