public class RayToScreenMid : MonoBehaviour
{
// 从视角摄像机向屏幕中间发射射线
Camera MianCamera; // 这是一个摄像机对象
Vector3 ScreenMidPos; // 这是屏幕中央的点的坐标
private void Start()
{
MianCamera = Camera.main;
ScreenMidPos = new Vector3(Screen.width / 2, Screen.height / 2, 0); // 初始化屏幕中央的点的坐标
Debug.Log(Screen.width);
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Ray OneRay = Camera.main.ScreenPointToRay(ScreenMidPos); // 以屏幕中央点为原点,发射射线
if (Input.GetMouseButtonDown(0))
{
RaycastHit ShotEnemy;
if (Physics.Raycast(OneRay, out ShotEnemy))
{
if (ShotEnemy.transform.name != "wuti" && ShotEnemy.transform.name != "Terrain")
{ // 如果碰到的不是地形和角色
Debug.Log("射中了一个物体他叫" + ShotEnemy.transform.name);
Destroy(ShotEnemy.transform.gameObject);
}
}
}
}
}
}
摄像机设置:
狙击点设置: