Задать вопрос
@Chipu

Unity, после создания игры синий экран, как исправить?

В самом Unity все хорошо работает
5b9a4a2b97e63008346113.png
но после постройки приложения и его запуска внутри такое:
5b9a4a57c9a62391318279.png
Подскажите, как это исправить?
  • Вопрос задан
  • 3108 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
flexer1992
@flexer1992
Unity Developer
Вангую что сцена не включена в сборку. А если включена то стоит на втором месте. Первой грузится та что создается по дефолту. Проверьте File->BuildSettings->ScenesInBuild.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos Куратор тега Unity
Соберите developer build и посмотрите ошибки в консоли после запуска.
Как один из вариантов по быстрому - не добавлены нужные сцены в билд/неправильный порядок сцен.
Ответ написан
Комментировать
@Chipu Автор вопроса
Код:
using System.Collections;
using System.Collections.Generic;
using System.Text;
using UnityEngine;

public class Rules : MonoBehaviour
{


    DragAndDrop dad;

    public Rules()
    {
        dad = new DragAndDrop();
    }
	// Use this for initialization
	void Start ()
    {
		
	}
	
	// Update is called once per frame
	void Update ()
	{
	    dad.Action();
	}
}

class DragAndDrop
{
    enum State
    {
        none,
        drag
    }

    private State state;
    private 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;
                }
                break;
        }

        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;
    }

}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы