将生成的对象放置在鼠标的位置

本文关键字:鼠标 位置 对象 | 更新日期: 2023-09-27 17:50:07

我想做的是:

  • 点击我的UI中的一个图标
  • 有相应的游戏对象关联用它刷出并跟随我的鼠标指针
  • 当我点击鼠标时,这个衍生对象的位置设置在我的鼠标指针所在的位置

我已经做了一段时间了,现在已经完成了前两个步骤,但我不知道如何让我的衍生对象重置其位置。有人能帮我一下吗?

我代码:

void MoveObject()
{
    if(aliveObject != null)
    {
        if (moveObject == true)
        {
            Vector3 pos = Input.mousePosition;
            pos.z = aliveObject.transform.position.z - Camera.main.transform.position.z;
            aliveObject.transform.position = Camera.main.ScreenToWorldPoint (pos);
            Vector3 targetPositon = Camera.main.ScreenToWorldPoint (pos);
        }
        else if (moveObject == false)
        {
            Vector3 p = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y,10.0f));
            aliveObject.transform.position = new Vector3(p.x,p.y, 0.0f);
            Debug.Log("placed");
        }
    }
}
void Update () 
{
    MoveObject ();
    if (Input.GetMouseButtonDown(0)) 
    {
        moveObject = false;
    }
}
public void DecreaseCount()
{
    // called when UI button is clicked  
    if(count > 1)
        aliveObject = (GameObject)Instantiate(desiredObject,new Vector3(0,0, 0.0f),Quaternion.identity);
}

将生成的对象放置在鼠标的位置

我该怎么做:

Public GameObject spawnObject;
void Update ()
{
    DragObject (spawnObject);
}
void DragObject (GameObject item)
{
     if ( input.GetMouseButtonDown ())
     {
           Vector3 pos = input.mousePosition;
            if (theItem == null)
            {
                   GameObject theItem = Instantiate (item, pos, new Quaternion (0f, 0f, 0f, 0f)) as GameObject;
            }
            if (theItem != null)
            {
                   theItem.transform.position = pos;
            }
      }
}

然后由你来销毁对象。如果你在Unity中创建一个游戏对象,然后将其分配给spawnObject,那么它就会生成它并停留在鼠标所到之处。顺便说一下,我是在手机上输入的,所以请检查大小写。

因为它在update方法中,所以它将锁定鼠标的位置。我已经做了一些这样的形式来锁定游戏对象在我的应用程序中的角色位置。