簡體   English   中英

將3d對象統一移動到鼠標單擊的位置

[英]Move 3d object to mouse click position in unity

我統一創建一個場景。 我將攝像機和3d統一立方體對象添加到場景中。 要將對象移動到鼠標單擊的位置,我添加了raycast,它可以正常工作。

但是我想使用我的模型。 我有一個objmtl文件。 我將它們復制到Assets文件夾。 我用下面的代碼。 該對象移動但不精確於我的單擊位置。

        Plane plane = new Plane(Camera.main.transform.forward, transform.position);
        pos = Input.mousePosition;
        Ray ray = Camera.main.ScreenPointToRay(pos);
        float dist;
        if (plane.Raycast(ray, out dist))
        {
            Vector3 v = ray.GetPoint(dist);
            objectPos = v;
        }

        transform.position = objectPos;

模型的原點不是(0,0,0)。 我從大型3D模型中切出了這個對象。

我嘗試移至(Screen.width/2, Screen.Height/2, 0.0f) ,結果如下

編輯 在此處輸入圖片說明

編輯2

我向對象添加box collider 但是對撞機的位置與物體不同。 在此處輸入圖片說明

您必須移動對象的零點或保存一個表示要移動對象的矢量的變量,然后將其添加到objectPos中以設置transform.position

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM