转载自:.https://blog.csdn.net/agroupofruffian/article/details/78974012
public Vector3 screenPosition;//将物体从世界坐标转换为屏幕坐标
public Vector3 mousePositionOnScreen;//获取到点击屏幕的屏幕坐标
public Vector3 mousePositionInWorld;//将点击屏幕的屏幕坐标转换为世界坐标
public void Update()
{
MouseClick();
}
/// <summary>
/// 获取鼠标在屏幕中的位置
/// 点击鼠标从对象池取出所需物品,将其位置设置为鼠标所在位置
/// </summary>
public void MouseClick()
{
//获取鼠标在相机中(世界中)的位置,转换为屏幕坐标;
screenPosition = Camera.main.WorldToScreenPoint(transform.position);
//获取鼠标在场景中坐标
mousePositionOnScreen = Input.mousePosition;
//让场景中的Z=鼠标坐标的Z
mousePositionOnScreen.z = screenPosition.z;
//将相机中的坐标转化为世界坐标
mousePositionInWorld = Camera.main.ScreenToWorldPoint(mousePositionOnScreen);
if (Input.GetMouseButtonDown(0))
{
GameObject go = PoolManager.Instance.Spawn(GameObjectYouNeed);
go.GetComponent<RectTransform>().position = mousePositionInWorld;
go.transform.parent = Canvas;
go.transform.SetAsLastSibling();
}
}