E
E
ebaysher2021-05-31 12:09:16
C++ / C#
ebaysher, 2021-05-31 12:09:16

Why does the script in the build in Unity not work?

I started to study the unit a couple of days ago according to the guide.
The script does not work in the build in the unit, despite the fact that everything works in the unit itself.
I'm making chess, and now the moves stopped working in the build
. What could be the problem?
googled and some had bugs in the code. But everything seems to be fine here

public class Rules : MonoBehaviour
{
    DragAndDrop dad;
    public Rules()
    {
        dad = new DragAndDrop();
    }

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        dad.Action();
    }
}

class DragAndDrop
{
    enum State
    {
        none,
        drag
    }

    State state;
    GameObject item;

    public DragAndDrop()
    {
        state = State.none;
        item = null;
    }
    public bool Action()
    {
        switch (state)
        {
            case State.none:
                if (IsMouseButtonPressed())
                    PickUp();
                break;
            case State.drag:
                if (IsMouseButtonPressed())
                    Drag();
                else
                    Drop();
                return true;
        }
        return false;
    }
    bool IsMouseButtonPressed()
    {
        return Input.GetMouseButton(0);
    }
    void PickUp()
    {
        Vector2 clickPosition = GetClickPosition();
        Transform clickedItem = GetItemAt(clickPosition);
        if (clickedItem == null) return;
        item = clickedItem.gameObject;
        state = State.drag;
        Debug.Log("picked up: " + item.name);
    }
    Vector2 GetClickPosition()
    {
        return Camera.main.ScreenToWorldPoint(Input.mousePosition);
    }
    Transform GetItemAt(Vector2 position)
    {
        RaycastHit2D[] figures = Physics2D.RaycastAll(position, position, 0.5f);
        if (figures.Length == 0)
            return null;
        return figures[0].transform;
    }
    void Drag()
    {
        item.transform.position = GetClickPosition();
    }

    void Drop()
    {
        state = State.none;
        item = null;
    }
}

Answer the question

In order to leave comments, you need to log in

1 answer(s)
G
GavriKos, 2021-05-31
@GavriKos

What's in the logs? See logs.
In general, don't use constructors for MonoBehaviour. This is the first thing to change and check

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question