Форум программистов, компьютерный форум, киберфорум
Наши страницы

Unity, Unity3D

Войти
Регистрация
Восстановить пароль
 
TwinkleGames
0 / 0 / 0
Регистрация: 29.06.2017
Сообщений: 10
#1

Не работает скомпилированная игра - Unity, Unity3D

07.07.2017, 17:32. Просмотров 266. Ответов 10
Метки нет (Все метки)

В редакторе все работает, а в скомпилированной игре не работают 2д элементы и система частиц. Сам проект 2д но содержит объемные элементы с которыми как раз и нет проблем. Подскажите в чем может быть проблема.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2017, 17:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает скомпилированная игра (Unity, Unity3D):

Не работает скомпилированный EXE файл хотя в самой среде игра работает - Unity, Unity3D
Я почти закончил разработку своей игры на Unity2D но после запуска скомпилированного EXE файла половина текстур не отображается хотя в...

Скомпилированная программа не работает - Turbo Pascal
что делать ????сохраняю файл в формате .EXE ,открываю с копа начинает открываться и вылетает!!!!

Не работает скомпилированная функция - Oracle
Здравствуйте. Я понемногу осваиваю PL/SQL, так что если что не судите строго. Для примера попробовал написать функцию факториала....

Не работает скомпилированная программа VB - Visual Basic
Программка VB в режиме интерпретатора работает, откомпилированная выдает ошибку 13. Ошибку не нахожу. Ума не приложу как решить данную...

Скомпилированная программа работает иначе - Turbo Pascal
Здравствуйте, вот тут надо одну программу написать, а у нее ошибка: запускаю из TP работает стабильно, а если её exe'шник запустить то...

Программа, скомпилированная в Visual Studio 2015, не работает в Windows XP - C#
Стоит 2015 студия на семерке, проект WPF Net 4.5 Скидываю полученный exe на XP появляется такая ошибка Казалось бы может она...

10
Prog_maker
376 / 334 / 108
Регистрация: 23.01.2011
Сообщений: 926
07.07.2017, 18:44 #2
Вы хоть скрины покажите где и что у вас не работает. Под какую платформу компилируете?
1
TwinkleGames
0 / 0 / 0
Регистрация: 29.06.2017
Сообщений: 10
08.07.2017, 10:22  [ТС] #3
Компилирую под Винду. к сожалению только что несколько раз попытался загрузить скрин, так и не получилось( error 404.
суть такова что нажатием на клавишу я вращаю барабан и увеличиваю на один интовую переменную обозначающую у меня номер круга, по краю у него триггеры, при соприкосновении стартует таймер, когда барабан останавливается таймер доходит до завершения активируется прикрепленный к данному триггеру объект лампочка с партиклами, и при разном номере круга выдает рандомно карточку из соответствующего кругу массива. Всего кругов пять и они идут по определенному порядку.
Изначально проект создан как 2д, но в нем присутствуют 3д элементы(барабан и стрелка которая соприкасается с триггерами на барабане).
В скомпилированной игре не работают карточки и партикл систем
0
TwinkleGames
0 / 0 / 0
Регистрация: 29.06.2017
Сообщений: 10
08.07.2017, 10:24  [ТС] #4
Не работает скомпилированная игра
0
TwinkleGames
0 / 0 / 0
Регистрация: 29.06.2017
Сообщений: 10
08.07.2017, 10:34  [ТС] #5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class RandomRotate : MonoBehaviour {
    
    public float Speed;
    public bool Go;
    public int Round;
    public int Scene = 0;
    // Use this for initialization
    void Start () {
        Speed = 0;
        Go = false;
    }
    
    // Update is called once per frame
    void Update () {
        System.Random rand = new System.Random();
        gameObject.transform.Rotate(0, 0, Speed * Time.deltaTime);
 
        Speed--;
        if (Input.GetKeyUp(KeyCode.F))
        {
            Go = true;
            //GameObject.FindGameObjectsWithTag("Card1"); 
            Speed = rand.Next(300, 700);
 
            Round++;
        }
        if (Speed <= 0)
        {
 
            Speed = 0;
        }
        if(Round == 7)
        {
            Application.LoadLevel(Scene);
        }
    }
}
Добавлено через 1 минуту
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class ActiveBall : MonoBehaviour {
    public float Timer;
    public float TimerC;
    public GameObject Light;
    public bool Go;
    public GameObject Sparkl;
    public GameObject[] Round1;
    public GameObject[] Round2;
    public GameObject[] Round3;
    public GameObject[] Round4;
    public GameObject[] Round5;
    public RandomRotate Zapusk;
    // Use this for initialization
    void Start () {
        
    }
    
    // Update is called once per frame
    void Update () {
 
        if(Go == true&& Zapusk.Go == true)
        {
            Timer += Time.deltaTime;
            TimerC += Time.deltaTime;
            
        }
        if(Timer >= 2)
        {
            
            Light.SetActive(true);
            Instantiate(Sparkl,transform.position,transform.rotation);
            Timer = 0;
        }
        if (TimerC >= 3)
        {
            //Round1[Random.Range(0, 9)].SetActive(true);
            StartCoroutine(ActiveCard());
            TimerC = -6000;
 
        }
}
    IEnumerator ActiveCard()
    {
 
        yield return new WaitForSecondsRealtime(0.1f);
        if(Zapusk.Round == 1) { 
        Round1[Random.Range(0, 9)].SetActive(true);
        }
        if (Zapusk.Round == 2)
        {
            Round2[Random.Range(0, 9)].SetActive(true);
        }
        if (Zapusk.Round == 3)
        {
            Round3[Random.Range(0, 9)].SetActive(true);
        }
        if (Zapusk.Round == 4)
        {
            Round4[Random.Range(0, 9)].SetActive(true);
        }
        if (Zapusk.Round == 5)
        {
            Round5[Random.Range(0, 9)].SetActive(true);
        }
        yield break;
 
    }
 
    void OnTriggerEnter(Collider Act)
    {
        if (Act.CompareTag("Gofi"))
        {
            Go = true;
           
 
 
        }
 
 
    }
    void OnTriggerExit(Collider Act)
 
    {
        if (Act.CompareTag("Gofi"))
        {
            Go = false;
            Timer = 0;
            Light.SetActive(false);
            Destroy(Sparkl);
            TimerC = 0;
          
        }
 
 
    }
}
Добавлено через 2 минуты
код конечно корявый, но в редакторе он работает, а при скомпилированной игре нет

Добавлено через 2 минуты
При чем я только что обратил внимание что не работают скрипты которые связаны с основным RandomRotate скриптом, может дело в том как я обращаюсь из одного скрипта в другой? Я уже не знаю что и придумать
0
Prog_maker
376 / 334 / 108
Регистрация: 23.01.2011
Сообщений: 926
08.07.2017, 12:02 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну скиньте проект. Косяки есть немного подпрявлю и посмотрю почему не работает.
1
TwinkleGames
0 / 0 / 0
Регистрация: 29.06.2017
Сообщений: 10
08.07.2017, 12:05  [ТС] #7
Подскажите, как мне правильно вам скинуть проект?
0
8Observer8
1842 / 1168 / 154
Регистрация: 05.10.2013
Сообщений: 3,815
Записей в блоге: 55
08.07.2017, 12:32 #8
Цитата Сообщение от TwinkleGames Посмотреть сообщение
Подскажите, как мне правильно вам скинуть проект?
Нужно закрыть Unity. Удалить папку Library (не нужна, много весит). Создать архив. Нажать кнопку "Управление вложениями". Выбрать архив.
1
TwinkleGames
0 / 0 / 0
Регистрация: 29.06.2017
Сообщений: 10
08.07.2017, 14:17  [ТС] #9
https://drive.google.com/open?id=0B3eYZWXSxtdTY1poaGR2cjh4QlE

Добавлено через 1 минуту
скинул архив, скажете если чего то не хватает
0
Prog_maker
376 / 334 / 108
Регистрация: 23.01.2011
Сообщений: 926
08.07.2017, 21:52 #10
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
https://drive.google.com/open?id=0B74mmeWOV0LELTMxMFNxMndvVVU - подправленный проект
https://drive.google.com/open?id=0B74mmeWOV0LEenRaeTB0R09VNG8 - билд

Добавлено через 7 минут
У Вас там серьезная ошибка была в ActiveBall.

вот смотрите

это ссылка на пребаф, который лежит в ассетах
C#
1
public GameObject Sparkl;
Таким образом установится клон префаба
C#
1
 Instantiate(Sparkl,transform.position,transform.rotation)

А удалить вы пытаетесь именно префаб!!!
C#
1
Destroy(Sparkl);

поэтому правильнее будет сделать

C#
1
private GameObject sparklOnSceen; // А это будет именно клон, который будет на сцене
устанавливаем на сцену
C#
1
sparklOnSceen = Instantiate (Sparkl, transform.position, transform.rotation) as GameObject;
и удаляем уже именно клона на сцене
C#
1
Destroy (sparklOnSceen);
Добавлено через 5 минут
В скрипте Sparkle вы запускаете Destroy каждый кадр
C#
1
2
3
4
    void Update ()
    {
        Destroy (gameObject, 1.8f);
    }
надо перенести в старт
C#
1
2
3
4
    void Start ()
    {
        Destroy (gameObject, 1.8f);
    }
Добавлено через 4 минуты
В RandomRate:
C#
1
2
3
4
 void Update () {
        System.Random rand = new System.Random();
        ......
        }
не нужно каждый кадр создавать новый Random. Для большей рандомности значений Random должен быть статическим. И в Unity он уже есть.

Да и Application.LoadLevel(Scene) - Устарел, вместо него SceneManager.

Во исправленный метод Update
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Update ()
    {
        gameObject.transform.Rotate(0, 0, Speed * Time.deltaTime);
 
        Speed--;
        if (Input.GetKeyUp(KeyCode.F))
        {
            Go = true;
            //GameObject.FindGameObjectsWithTag("Card1"); 
            Speed = Random.Range(300f, 700f);
 
            Round++;
        }
 
        if (Speed <= 0)
        {
            Speed = 0;
        }
 
        if(Round == 7)
        {
            // Application.LoadLevel(Scene); ------- // Это устаревший метод
            SceneManager.LoadScene(Scene);
        }
    }
1
TwinkleGames
0 / 0 / 0
Регистрация: 29.06.2017
Сообщений: 10
09.07.2017, 10:40  [ТС] #11
Спасибо огромное, сейчас буду разбираться что бы в будущем уже делать более корректно. Я только месяц как первый раз узнал о юнити и сишарпе, так что пока только учусь. Огромное за помощь, это нереально крутой ресурс. Я очень рад что попал сюда!!!!
0
09.07.2017, 10:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2017, 10:40
Привет! Вот еще темы с ответами:

Программа, скомпилированная в Visual Studio 2013, не работает в Windows XP - Visual C++
В ОС Windows 7 Home Base 32 bit установлены Visual Studio 2008 Express и Visual Studio 2013 Ultimate. Простую консольную программу:#include...

Программа школьника, скомпилированная в среде TP 7.0 - Free Pascal
Следующая программа школьника, скомпилированная в среде TP 7.0, зацикливается, если отключена проверка выхода за границу массива....

Скомпилированная программа не меняет системное время - C#
Здравствуйте. Вопрос в следующем, хотя я и не знаю как его задать: при включенном дебагере программа изменяет системное время на ура. Когда...

Программа скомпилированная в Debug не запускается на других компьютерах - Visual C++
Здравствуйте, у меня вот такой вопрос. Я пользуюсь VC++ 2005. Так вот: при компиляции в дебуге мои файлы на чужом компьютере не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.