0、演示
1、定义变量
public Camera theCamera; //UI摄像机
private GameObject Element; //控件
private bool clicked = false; //判断是否点击过控件
private bool is_element = false; //是否有控件
Vector3 newWorldPos; //新坐标
2、点击发出射线,判断是否命中tag为elelment的控件
//按下左键开始发出射线
if (!clicked && Input.GetMouseButtonDown(0))
{
Ray ray = theCamera.ScreenPointToRay(Input.mousePosition); //射线由主摄像机发出,射向屏幕点击的点
RaycastHit hit; //射线撞击点
if (Physics.Raycast(ray, out hit) && hit.collider.tag == "element") //如果射线撞击到碰撞体,且碰撞体的标签是我们设置需要拖拽的物体,那么进行主逻辑
{
Element = hit.collider.gameObject; //记录下拖拽物的原始屏幕空间位置
Element.GetComponent<Collider>().enabled = false; //关闭该物体的Collider,使射线可以穿过
is_element = true;
clicked