Как перетащить 2D-изображение пользовательского интерфейса на объект 3D-игры, а затем создать экземпляр объекта 3D-игры в том месте, где мы отбросили наше 2D-изображение пользовательского интерфейса? - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть куб в моей сцене, поэтому мне нужно перетащить 2-мерное изображение интерфейса гаечного ключа поверх куба, и как только я уроню это изображение на 3d-куб, там должен быть создан префаб гаечного ключа.

Вот изображение, показывающее, что мне нужно

drag and drop on cube

Я использую приведенный ниже код для перетаскивания своего изображения пользовательского интерфейса по сцене, но не знаю, как добавить его в 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 голосов
/ 20 ноября 2018

обычно при переполнении стека вы должны добавить некоторую информацию о том, что вы сделали, и показать некоторый код, чтобы мы могли помочь выяснить, в чем проблема вашего подхода. Люди не будут писать весь код для вас, не зная, как выглядит ваш проект в настоящее время.

При этом, если вам пока нечего показать и просто интересно, с чего начать, вот идея:

Вы можете получить положение мыши в мире и выстрелить из него лучом. Затем проверьте, попадает ли этот луч и возражает ли он. как это:

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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...