Ужас!!! Оказывается, мой откомпилированный файл работает совсем не так, как надо (можно сказать, что вообще не работает). Но что самое странное - в режиме тестирования все идет как надо! Не могу понять в чем дело. Придется начинать все заново (уже в третий раз!) и компилировать на каждом шаге, чтобы выловить, на каком месте начинается сбой!
Сталекс, Unity последняя стабильная версия? Что именно происходит со сборкой игры? Что значит в "старой программе"? Попробуй сделать копию проекта и удалить всё кроме папок Assets и ProjectSettings, может временные файлы мешают.
Да, последняя версия. Происходит следующее: по прохождению сценария одни элементы (спрайты, кнопки) включаются или выключаются. При запуске в режиме Game все нормально, а в откомпилированном файле этого не происходит (элементы, которые должны выключиться, остаются на экране, а новые не появляются). Когда стояла Винда 7, откомпилированный файл работал. Правда, я уже сделал кучу изменений, может в них проблема. Попробую почистить все и запустить ранее сохраненные файлы из архива.
Поменял Винду 7 на 10-ку (64). В режиме тестирования все работает нормально, а откомпилированный файл - нет. Пробовал компилировать и в 32, и в 64 битный режим. Все равно не работает. В чем может быть причина? В том, что начинал писать в старой программе? Нужно писать все заново с нуля?
Переделал List на Dictionary. Полдня возился с его сортировкой. Нужна сортировка по убыванию. Пытался использовать OrderByDescending, но не смог понять, куда и как ее писать. Потом нашел Reverse. Вот с ним все получилось.
Код
//вывод таблицы игроков ICollection<int> keys = Global.Spis.Keys; foreach (int s in keys.Reverse()) { if (Global.lnomo1 != Global.Spis[s]) {...
Добавлено (31 июля 2016, 15:56) --------------------------------------------- Опять переделывал список игроков. Ключ был по очкам игрока, но потом понял, что так нельзя - количество очков может быть одинаковым у некоторых игроков. Сделал ключом имя игрока. Ну и пришлось из-за этого кучу изменений вводить.
Список переделал. Двигаюсь дальше.
Добавлено (03 августа 2016, 12:17) --------------------------------------------- Есть добавление в программе. Поскольку в сцене регистрации нового игрока спрашивается, сколько у него с собой денег, то скорее всего, все будут указывать максимальное число. Поэтому ввел дополнительную проверку. Чем больше сумму вводит игрок, тем больше вероятность, что девушка ему не поверит .и проверит. Если сумма в пределах сотни, то наверняка она ему поверит. Ссылка та же: https://www.dropbox.com/s/1f7zkoq7pdkji1h/Tradukoludo.exe?dl=0
Добавлено (07 августа 2016, 14:25) --------------------------------------------- Почти закончил блок регистрации нового игрока.
Добавлено (11 августа 2016, 15:25) --------------------------------------------- Да... вот блок почти закончил, но придется похоже все заново начинать. Делал на основе множества маленьких сцен, думал, так проще будет отлаживать. Но возникли проблемы с передачей информации между сценами. Разобрался со всем, кроме "источника звука". В первой сцене я сделал его DontDestroyOnLoad. Но так и смог найти, как его включать/выключать в других сценах. Нашел только Destroy, что мне не очень подходит. Попробую теперь сократить число сцен, делать их более масштабными. И похоже, что никто не следит за моими мученическими попытками что-то сваять)). Поэтому не буду заливать проект для открытого доступа. Хоть и не слишком много времени это занимает, но все-равно надоедает необходимость частой синхронизации.
Добавлено (19 августа 2016, 18:57) --------------------------------------------- Переписываю все с нуля в одной сцене. Пока еще не сделал того, что было ранее. Долго стоял на поисках того, как программно изменять содержимое UI Text. Вот сегодня нашел, как это делается. Готов только выбор игроков из списка. Теперь начну делать блок регистрации нового игрока. --------------------- 12.09.16 Почти полмесяца ничего не делал - комп сломался, вот только вчера запустил. Теперь буду потихоньку продолжать.
Сообщение отредактировал Сталекс - Понедельник, 12 Сентября 2016, 10:05
как выравнять спрайты анимации в атласе в Sprite Editor? Вот есть атлас спрайтов, которые должны вместе составлять анимацию - но все они разной высоты и ширины
Я тоже на этом месте застрял. Поэтому не стал использовать атлас. Сделал кадры анимации в Гимпе и отдельными кадрами в формате .png скинул в Юнити. А там уже из них собрал анимацию. Размеры у них у всех одинаковые (правда, куча свободного места) поэтому проблема с центрированием отпала. Возможно, это как-то скажется на производительности, но я делаю игру для ПК, так что это для меня не проблема.
Спасибо, будет время, поиграю. Нового пока ничего не делал. Решил немного подчистить то, что уже сделано. Столкнулся с трудностью. Список игроков считываю в list users (скрипт Gard). Теперь он нужен в другой сцене. Хотел сделать его static, но не получается. Видно из-за того, что свой собственный класс MyClass использую.
Код
public class MyClass //имена игроков и их деньги { public MyClass(int mon, string nomo) { this.mon = mon; this.nomo = nomo; } public string nomo; public int mon; } public List<MyClass> users = new List<MyClass>();
void Start() {
//считывание таблицы членов клуба File.ReadAllLines("D:/Unity/Zamenhof/Assets/Text/Ludantoj.txt").ToList().ForEach (sr => { var arr = sr.Split(',');//разделитель до которого считываем MyClass nl = new MyClass(int.Parse(arr[0]), arr[1]); users.Add(nl); }); }
Хочу переделать теперь на static Dictionary. Можно было бы считать его заново, но делать так в каждой сцене - мне кажется, что это неправильный подход будет.
Сообщение отредактировал Сталекс - Понедельник, 25 Июля 2016, 11:40
Да, я знаю. Но рассчитываю на узкую аудиторию - на начинающих эсперантистов. Я сам начал изучать эсперанто, ну а поскольку люблю программировать, то решил и совместить два увлечения. Просто так программировать - выполнять учебные задания, как-то не очень увлекательно, а так гораздо веселее. Можно было бы написать такую простую программу и на знакомом мне языке, но как раз и из-за ее простоты и решился писать ее на новом языке программирования. Самому польза, да и может другим начинающим эсперантистам пригодится.
[2D] TradukoLudo Жанр: языковый тренажер Игровой движок: Unity 5 Вид: от первого лица Сюжет: игрок приходит в клуб, садится за игровой стол. Рандомно выбирается слово. Сначала нужно с помощью наводящих подсказок угадать, что это за слово, затем правильно перевести его. Во время угадывания можно выбирать события (пока только парочку придумал), которые могут как уменьшить, так и увеличить очки игрока. Играть можно вдвоем (не по сети, просто за одним компьютером, пошагово), так даже будет интереснее, можно соревноваться, кто быстрее переведет. Платформа: Windows, оконный режим 800х600. Мой уровень: в Unity нулевой. Изучаю почти месяц. Знаю Бейсик и Паскаль. Всюду и всегда говорю, что люблю Бейсик (правда, после этого ко мне начинают относиться пренебрежительно, ну и пусть! ). В профи не мечу, программирую для удовольствия по 1-2 часа в день, поэтому в команду не зову, но буду очень рад всем за помощь в любой форме (в сценарии, подборе картинок, звуков, конструктивной критике кода, преодолении затруднений с кодом). Проект выложу на Dropbox, скачивать смогут все, а у кого там есть аккаунт, может будет оперативно отслеживать изменения кода без дополнительного скачивания всего проекта заново.
Добавлено (22 июля 2016, 11:58) --------------------------------------------- То, что сделано (очень немного) скомпилировал и выложил здесь: https://www.dropbox.com/s/1f7zkoq7pdkji1h/Tradukoludo.exe?dl=0
Ну а здесь сам проект. Наверняка, ужасен. Некоторые части даже толком не понял, т.к. тупо скопировал их с форума. https://www.dropbox.com/sh/adahqxd8fxxtrlc/AAACvqUhkuZw00qzydLH_IwDa?dl=0
19.08.2016 Папку с проектом Юнити пока не обновляю, т.к. все-равно никто ее не смотрит, а на синхронизацию время зря тратить не хочу. Если кому будет интересно, напишите, выложу. Откомпилированный файл буду выкладывать не на Дропбокс, а на родной Яндекс: https://yadi.sk/d/mGQvDTLotEhcr
Сообщение отредактировал Сталекс - Пятница, 19 Августа 2016, 18:49
Да нет же, я в плане масштабирования помощи не просил. Первый проект сделаю в фиксированном окне, пока на это время жалко тратить. Я только спросил: если размер картинки соответствует размеру окна, то это хорошо, или без разницы. Мне кажется, что лучше, что б соответствовал, наверно, тогда программе не придется перерасчет делать, быстрее будет работать. И еще меня удивило, что надо число 3 (логичнее была бы 1) ставить, чтобы размер был пиксель в пиксель. Но все это второстепенные вопросы.
Пока писал ответ, у вас дополнение появилось, сейчас отвечу.
Нет, не меню. Игра по типу комикса - просто одна картинка с текстом меняется на другую, ну как в презентации. Просто я не владею правильной терминологией, поэтому меня и трудно понять. )) Мне вот посоветовали проект выложить на dropbox. Там больше возможностей, чем на Яндекс-диске. Наверно, так и сделаю.
На UI я кнопки и надписи кидаю, а спрайты отдельно.
Вот только что увидел, что здесь есть ветка "Ваши проекты" - "Идеи для реализации". Вот там-то мне и нужно выложить свой проект. Завтра займусь этим. Но с вопросами буду сюда приходить, да?
Сообщение отредактировал Сталекс - Четверг, 21 Июля 2016, 22:40
Git + Bitbucket, встречал упоминания о них в инете. Подробно не читал, но там только 5 чел могут участвовать? И работу с ним тоже осваивать надо, кажется, просто так, с налету, в нем не поработаешь? Про картинку: нашел в свойствах камеры параметр Size (про него речь шла?). По умолчанию, стоит 5. Если ставлю 3 (почему 3, а не 1?), то на глаз, кажись, вписывается как надо. А стоит ли вообще возиться и подгонять размер картинки к размеру будущего окна (если он будет иметь стабильный размер)? Да, забыл добавить, у меня двухмерная игра, режим камеры Orthographic
Сообщение отредактировал Сталекс - Четверг, 21 Июля 2016, 18:32
Так что не надо утверждать, что что-то в языке использовать плохо\не нужно - всё зависит от ситуации.
Солидарен на 100%! Недаром же и самые современные языки стали включать в себя и столь ненавистный всеми GOTO!
Ну, и по традиции, мой нубский вопрос: Делаемая мною программа будет работать в оконном режиме 800х600 (не стал тратить время на разбор темы, как все масштабировать при разных разрешения). Программу пишу на рабочем столе 1024х768. И вот сегодня целый день делал картинку размера 800х600, положил ее в Unity, а она, собака эдакая, не занимает всю площадь. Окно размера 800х600, картинка 800х600, а занимает намного меньше места. Может, мне и разрабатывать прогу надо при экране 800х600? Вряд ли ведь?
И еще хотел спросить, можно ли как-нибудь открыть мой проект для просмотра? Кроме как закинуть всю рабочую папку проекта на Яндекс-диск, включить синхронизацию и работать, больше ничего не придумал. Но боюсь, не скажется ли это на работе, не будет ли подвисать процесс разработки? Никто не пробовал? А так кому интересно, мог бы развлечься, наблюдая, какими извилистыми тропами идет мыслительный процесс новичка Ну, а может (на что я и надеюсь-то), кто и подскажет, укажет на ошибки.
Этот фрагмент я понимаю полностью, до единого слова. Ну вот почему бы просто сразу так и не ответить было бы, а? А то началось: "кури ману!, пошел на... Гугль!"
Добавлено (21 июля 2016, 09:08) ---------------------------------------------
ЦитатаEgoor ()
В C# все логично, все понятно и вообще писать на нем - как лежать в объятьях красивой женщины.
Ага! Только чтобы попасть в объятия, будешь сначала все её капризы выполнять! И все зависит от её настроения - сегодня будет благосклонна, а завтра и не посмотрит в твою сторону! Одни эмоции и никакой логики!
Сегодня за завтраком думал об этом и о том, с кем тогда сравнить Бейсик (не кидайтесь только сразу камнями, соблюдайте толерантность) Если C# сравнивается с женщиной, то Бейсик - простой надежный боевой друг! Солдат - преданный, верный, лаконичный, не цепляющий на себя всякие рюшечки (фигурные скобки), но который выполнит приказ любой ценой: дай ему команду "goto" и можешь быть уверен, что его не остановят ни бастионы вложенных циклов, ни броня подпрограмм, он выйдет к указанной точке!
(ля особо серьезных фанатов еще раз поясню - это шутка, не ставящая перед собой цель унизить какой-нибудь из языков)
Ну и зря вот вы во мне сомневались! Как сказали, так и сделал. Все получилось, правда, в самом верху надо было еще using UnityEngine.UI; добавить. Теперь работает. Спасибо большое! С меня + в репу!
Количество видео-уроков приближается к бесконечности Все посмотреть - жизни не хватит. 1. Какой смотреть? 2. На моем древнем кинескопном мониторе там один черт ничего не разглядишь.
20 дней с начала изучения Unity и нулевой результат!!! Блин, да за это время я пол Бейсика выучил! И вот почему его так не любят? Все логично и понятно, а тут действительно шаманство какое-то, вместо того, чтобы логикой программы заниматься, приходится выискивать магические заклинания! (Не обижайтесь, это я просто зло срываю от беспомощности).
Спасибо, что отвечаете. Насчет регистра я в курсе, в программном тексте я написал правильно, а во фразе просто выделил с большой буквы. Но это чепуха, я вот не понимаю, если я напишу if (dropdown.options[dropdown.value]=1) {n=....}; то как комп поймет о каком dropdown я спрашиваю? А если их несколько? На бейсике каждый имеет свое имя: ComboBox1, ComboBox2... . И там бы я написал так: if ComboBox1.Value=1 then n=.... А как это написать в Unity, я не понимаю.
Сообщение отредактировал Сталекс - Среда, 20 Июля 2016, 17:05
Программист я начинающий. Знаю только Бейсик и Паскаль. Был я там, где вы показываете. Я понял, что такое Value, но я не знаю, как его посмотреть в программе. Так, что-ли: if (dropdown.options[dropdown.value]=1) {n=....}; ? Будем пробовать.