如何将2D UI图像拖放到3D游戏对象上,然后在我们放置2D UI图像的位置实例化3D游戏对象?

时间:2018-11-20 06:26:26

标签: user-interface unity3d drag-and-drop

我的场景中有一个多维数据集,所以我想要的是将扳手工具的2d UI图像拖放到该多维数据集上,并且一旦将该图像放到3d多维数据集上,就必须在其中实例化扳手预制件。

这是一张显示我需要的图像

drag and drop on cube

我正在使用以下代码在场景中拖动我的UI图像,但不知道如何将其拖放到3D Cube上并实例化扳手预制件

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class wrench : MonoBehaviour {


    public bool Dragging = false;
    public bool collision = false;
    Vector3 position;

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {

    }

    public void BeginDrag(){
        position = gameObject.transform.position;
        Dragging = true;
    }

    public void Drag(){    
        transform.position = Input.mousePosition;
    }

    public void Drop(){
        if (!collision) {
            gameObject.transform.position = position;
        }
        Dragging = false;
    }
}

1 个答案:

答案 0 :(得分:0)

通常在堆栈溢出时,您应该添加有关所做操作的一些信息并显示一些代码,以便我们可以帮助您找出方法中存在的问题。人们不会在不知道您的项目当前状态的情况下为您编写所有代码。

话虽如此,如果您还没有什么可显示的,只是想知道从哪里开始,这里有个主意:

您可以获取鼠标在世界上的位置,并从中发出光线。然后检查此射线是否击中并对准物体。像这样:

if (Input.GetMouseButtonUp(0))
{
    ray = Camera.main.ScreenPointToRay(Input.mousePosition);

    if (Physics.Raycast(ray, out hit))
    {
        Debug.Log(hit); // Find a way to figure out what object you hit
    }
}