鼠标点击选中物体
鼠标是摄像机二维平面上的一个点,通过射线可以延伸至三维空间选择物体。
先给摄像机添加射线组件:Effects -> Line Renderer
设置射线的初始位置(0)和结束位置(1),结束位置正常是有代码设置
设置射线宽度 Width
添加脚本
编写脚本
public class RayTest : MonoBehaviour
{
LineRenderer lineRenderer;
// Start is called before the first frame update
void Start()
{
//获取射线组件
lineRenderer = GetComponent<LineRenderer>();
}
// Update is called once per frame
void Update()
{
//判断用户是否按下鼠标左键
if (Input.GetMouseButton(0))
{
//创建射线对象,从屏幕发出的射线,参数:鼠标在屏幕的位置
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
//判断射线是否产生碰撞,最远距离是100
if(Physics.Raycast(ray,out hit, 100f))
{
//开启射线的显示
lineRenderer.enabled = true;
//设置射线的结束位置,参数1就是前面提到的结束位置
lineRenderer.SetPosition(1, hit.point);
//消除射线碰撞的物体
//Destory(hit.collider.gameObject);
}
else
{
//射线没有碰撞物体,就关闭射线的显示
lineRenderer.enabled = false;
}
}
}
}
消除射线碰撞的物体
Destory(hit.collider.gameObject);