Как решить? (яп не знаю вообще) - основные начальные мануалы все на яваскрипте, что очень важно. - Учебники по яваскрипты мне показались все слишком заточены под веб (по крайне мере то что я отыскал) и найти сразу практическое применение прочитанного в юнити маловероятно - К С# все вроде как уважительнее относятся - Литература по С# - справочник я по нему нарыл, который мне в целом по первым страницам хотя бы обшее представление обрисовал. И вроде как вижу ему реальное применение. Но все блин пишут на яваскрипте. Был бы я хоть чуток опытнее, то выбрал бы С# а так не знаю.. Куда не залезу простенький пример покоырять, посмотреть - все на яваскрипте. И даже официальные PDF-ки для новичков на unity3d.com Среди юзеров так вообще вроде мало кто С юзает. Если какой пример или подсказка нудна - то почти вегда на яваскрипте это.
Товарищи, дайте мне аргумент какой-нить чтобы чашу весов склонить в любую сторону))
И ссыль на ресурс/книгу по яваскрипту наиболее полезный и применимый в среде юнити тоже неплохо. А то одни браузеры описываются у всех)
Самоделкин, в юнити не JavaScript, а UnityScript. Учебников на эту тему не видел, ибо программирование довольно легкое. Весь API находится в ScriptingReference. Почитай оф. туториалы - 3D Platformer Game и FPS Tutorial. Там есть разбор US (JS). ICQ: 422190728, E-Mail: funnyalien@yandex.ru, Jabber: funnyalien@jabber.ru, Steam: funnyalienvalentine, Twitter: MrFunnyAlien, Skype: happyconsole, ВКонтакте: vk.com/twinemen, Мобильный: +79199212414.
unity3d.com Среди юзеров так вообще вроде мало кто С юзает.
Это заблуждение) но разумеется, людей использующих более простой язык больше, однако сомневаюсь что большинство коммерчески сделанных игр на юнити используют UnityScript. Ты ненайдешь в справочниках про javascript инфу по юнити, в Юнити нет JS. Это просто пиар название.
Действительно, на US больше примеров, а С# подразумевает, что ты уже сам можешь отвечать на свои вопросы. Как правило если я чего то незнаю по C# то мне хватает справки майкрософта с его примерами. ( А незнаю разумеется много ). API - там практически каждый пример приведен и в US и C#. Над скриптом из трея выбираешь на каком языке показать пример.
Перевод кода между US и С# на самом деле не сложная задача. Если не знаешь оба языка то тебе без разницы какой учить. Для меня было откровением насколько просто работать с C# после US. Начинать как всегда надо с простых вещей и азов. Тут тебе любой учебник по программированию подойдет. По началу будет выкидывать много ошибок самого разного и дурацкого характера. Это нормально, так как ты можешь запутаться элементарно в синтаксисе. С каждой полученной ошибки не беги сразу на форум а внимательно прочти ее, там указывается вплоть тебе до строчки откуда она произошла и почему. Как правило 80% таких ошибок ты можешь решить сам потратив на это 10-50 минут своего времени, почитав справки. Старайся не использовать примеры чужого кода. Почему? Объясняю - не умея программировать, ты будешь копировать чужой код, который на самом деле может оказаться дааалеко не самым удобным решением. Модифицировать же чужой быдлокод тяжелее чем написать свой и один раз выучиться на ошибке. Если уже потратил пару дней ломая голову, тогда обращайся.
Сделай максимально простую игру - крестики нолики. Не потому что у тебя идей круче нет;-) А просто на этой игре уже нехило отточишь свой базовый навык. ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Подскажите пожалуйста: не могу импортировать модельку из блендера, юнити ссылается на ошибку в конвертации (из blend в fbx). Читал оф. форум, обновил скрипт. Изменения нет, все еще просит блендер 2.45 и выше версии. - блендер у меня 2.61 - юнити 3.4.2 Единственное что он делает, так это префаб создает.
API - там практически каждый пример приведен и в US и C#.
Вот как раз яркий пример, по этой ссылке нет С шарп варианта. И такое именно на самых первых и простых этапах - когда только пытаешься понять принцип работы всей этой системы.
Quote (Eye)
Старайся не использовать примеры чужого кода.
Я их использую не для применения (хотя конечно на автомате к каким-то чужим решениям пристраститься можно) - я их использую чисто для понимания синтаксиса и правил структуры кода. Вношу изменения и проверяю после, работает ли скрипт и как. Все эти запятые, подчеркивания, маленькие-большие буквы и скобки всех калибров, арифметические знаки, типы переменных и прочие штуки, которые еще друг друга часто не любят больше чем я их. И еще куча всего, чего я пока даже не могу назвать по имени). Это на первом этапе самая страшная беда. В справлчнике даже если прочитаешь описание оператора или чего-то еще - вовсе не значит, что поймешь почему скрипт на него ругается. Я пока двже не могу понимать толком написанный код, даже с комментариями. Понятно что все вопросы по началу решаемы за 5-10 минут, но если уже потратил час-полтора - но так и не узнал, что вся проблемма в маленькой букве вместо большой, то толку сидеть еще полтора часа. Я считаю, что вопросы такого плана полезнее сразу задавать (лишние полтора часа скилл не сильно повысят), - другое дело что мало кто любит на них отвечать и это понятно))
Вопрос: на С# для Юнити новичку лучше учиться кодить в монодевелоп или полезно будет VisualStudio Express какой-нибудь? Разница будет в удобстве и темпах обучения? Имеет ли значение с какой версией С# я по учебнику знакомлюсь? Для Юнити это все фиолетово?
Сообщение отредактировал Самоделкин - Воскресенье, 12 Февраля 2012, 05:10
Самоделкин, Unity3D базируется на Mono, так что действительно фиолетово. Ну желательно конечно по 4.0, т.к. новые библиотеки, больше "фишек" узнаешь. Хотя, скоро 5.0 выйдет, Майкрософт уже пирует. И студия 2012 выйдет скоро... >_< Опять под них прогибаться придется. Fougerite - Rust Server OpenSource API TerraDev - Terraria OpenSource Hack
Вот как раз яркий пример, по этой ссылке нет С шарп варианта. И такое именно на самых первых и простых этапах - когда только пытаешься понять принцип работы всей этой системы.
Тоесть я видимо дурак?) Насчет попыток понять принцип работы этой системы. В юнити нигде не написано что это учебная программа призванная научить тебя программировать. Это инструмент которым ты пользуешься. Для этого нужны навыки. Навыки приобретаются во время обучения. Перевод кода из US в С# в большинстве случаев не вызывает даже напряжения мозговой корки. Ну если только ты за раз не переводишь весь проект с его прописанной архитектурой. Следовательно жалоба безосновательна. В твоем случае ты хочешь "обучиться" на практике. Чтож - будет не просто, придется самому очень много рыть инфы. Это вообще твоя прямая обязанность - каждый день насиловать гугл на предмет нужных тебе вещей и знаний.
Quote (pixeye)
там практически каждый пример приведен и в US и C#. Над скриптом из трея выбираешь на каком языке показать пример.
Quote (Самоделкин)
Все эти запятые, подчеркивания, маленькие-большие буквы и скобки всех калибров, арифметические знаки, типы переменных и прочие штуки, которые еще друг друга часто не любят больше чем я их. И еще куча всего, чего я пока даже не могу назвать по имени). Это на первом этапе самая страшная беда.
В отличии от многих человеческих языков "словарь" языка программирования куда меньше, чем ты думаешь;-), все что есть в программировании подчинено законам логики и арифметики ( если совсем утрированно ) так что у тебя не должен вызыывать ужас арифметический знак.
Кликаем - не скажу что прям, лучший справочник, однако кто ищет в гугле тот всегда найдет;-) Или книжку купи по C#. У страха глаза велики. ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Воскресенье, 12 Февраля 2012, 10:26
лучше учиться кодить в монодевелоп или полезно будет VisualStudio Express какой-нибудь
учиться лучше в VS с установленным решарпером. Очень много простейших ошибок, описок выявляется прямо в процессе написания, без необходимости проверять написанное в Юнити. Также прививается культура написания кода. Т.е. стандарт - переменные с маленькой буквы, методы с большой, приватное - начинаем с подчеркивания и т.д. Масса подсказок по улучшению кода - типа инверсии if для уменьшения вложенности скобок.
2pixeye Не понимаю чего ты завелся. Я не ною и не жалуюсь, претензий к программе (и уж к тебе тем более) не предъявляю, и все прекрасно осознаю из тех очевидных вещей что ты написал.
По поводу синтаксиса: он очевиден только для человека имеющего опыт какой-то в яп. Для абсолютного новичка невдомек что есть разница между заглавными и прописными и тд. Просто вы забыли, как это: видеть код, не имея никакого опыта яп. Да - я хочу постичь именну ту область знаний в С# которая позволит мне более или менее осваивать именно Юнити. Паралельно изучать и то и другое. И возможно только потом ширить кругозор в познаниях ЯП. Да - я "насилую гугл" и пользуюсь справочником С#4.0 The Complete Reference Герберта Шилда. Смотрю видео (Прикладного характера) и тп.
Quote (pixeye)
так что у тебя не должен вызыывать ужас арифметический знак.
у меня вызвал ужас восклицательный
Просто хотел сказать что одна простенькая беседа с опытным человеком, когда он "на пальцах" бы объяснил, как это все устроено, заняла бы пять минут. И потом все учить проще. А через инет это не пять минут, а недели целые чтобы базис усвоить и пробелы все равно будут. (Я даже не постеснялся для этого скачать детскую книжку с картинками, которая пояснила мне "на пальцах" что такое класс, метод и тд. Тупо кто среди них "главный")) Это помогло мне понять те вещи, которые я уже выполнял, но не осознавал правильно принципы их работы и взаимоотношений. Часто когда программист пишет книгу для абсолютного новичка, он уже видимо мыслит по-другому и не объяняет основ и всей структуры понятным обычным людям языком, а частности какие-то описывает и не подготавливает к терминам. Как буд-то общается с другим программистом, а не обычным человеком. Мне кажется именно поэтому я встречал людей которые могли называться программистами, но в целом не могли объяснить общую картину даже самим себе. Видимо также обучались) Иногда хочется задать вопрос типа: "А то что мы пишем в начале скрипта using.xxx это мы подключаем "библиотеки" или какие-то компоненты? Мы можем использовать только те возможности (классы и методы), которые описаны в указанных нами компонентах? Где физически находяться эти компоненты?" - меня с таким вопросом опять на гуггл и пошлют в лучшем случае) Основные принципы мало кто объясняет. Все как-то описывают частности , а "картину целиком не видно". Вот когда все базисы понятны, киты на которых стоит вся эта система, тогда и синтаксис и все остальное становится проще и гармоничнее как-то воспринимать.
Спасибо за ссылку - это удобнее того, чем я пользовался раньше в pdf. Как дочитаю иллюстрированную брошюрку с говорящими компьютерами и мартышками, делящими бананы, так сразу с-simple.ru станет моим кладезем знаний
2seaman Спасибо Я именно это и имел ввиду. В моно ведь тоже предлагают варианты "дописания строки" налету, когда пишешь. Но если VS поможет быстрее привыкнуть к написанию кода без ошибок, то это несомненный плюс. Такие вопросы: Когда я писал код в монодевелоп он предлагал мне варианты только из тех что могут быть использованы в разработке скриптов Unity или вообще все возможное для C#? Я правильно понял, что при разработке в VS ошибки можно будет видеть прямо сразу там, а не возвращаюсь в консоль интерфейса Юнити? VS Express мне хватит или нужно качать полную версию?
Сообщение отредактировал Самоделкин - Воскресенье, 12 Февраля 2012, 13:03
Да - я хочу постичь именну ту область знаний в С# которая позволит мне более или менее осваивать именно Юнити.
Эх.
Самоделкин, я не завелся) ей богу, прости если у тебя сложилось такое мнение, просто не понимаю чего ты хочешь. Ну да, возможно самоучка не может тебе объяснить все "на пальцах", хотя бы потому, что учить кого то - это тоже навык и им надо обладать. Я могу тебе дать совет, могу постараться ответить на прямой вопрос который ты задашь по своему коду. Но учить кого - то c нуля - это ответственность)
И извини меня конечно, но ты льешь много воды.
Quote (Самоделкин)
он "на пальцах" бы объяснил, как это все устроено, заняла бы пять минут.
Никак не может занять
Quote (Самоделкин)
А через инет это не пять минут, а недели целые чтобы базис усвоить и пробелы все равно будут.
Клик вот тебе второй ценный ресурс. По программированию игр на С++ и базовых концепциях программирования. УВЕРЯЮ, все, что там написано в большинстве своем применимо и в C#, написано человеческим доступным языком. Рассмотрены моменты разработки игр. Все очень интересно дано и займет при ленивом чтении и практики неделю времени. Так же описаны концепции программирования вообще.
Quote (Самоделкин)
Для абсолютного новичка невдомек что есть разница между заглавными и прописными и тд. Просто вы забыли, как это: видеть код, не имея никакого опыта яп.
Не забыл, так же как и не забыл первую расстерянность когда захотел написать игру и незнал с чего начать вообще. Пустой лист перед глазами и из этого надо написать игру. И как бился бошкой над глупейшими вещами тоже помню.
Так что терпение;-) Задавай конкретные вопросы по своему коду
Quote (Самоделкин)
Когда я писал код в монодевелоп он предлагал мне варианты только из тех что могут быть использованы в разработке скриптов Unity или вообще все возможное для C#?
Monodevelop - это среда разработки. Ты можешь в ней писать программы вообще не имеющие отношения к unity. В самом примитивном представлении это просто удобный ( или не очень ) редактор кода. С таким же успехом ты можешь писать скрипты для юнити в блокноте notepad. Например я в свое время писал код на notepad++ c плагинами заточенными под удобную разработку. Во время работы ты можешь и скорее все при комплексных разработках будешь использовать функционал C#. ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Это понятно. Я хотел бы знать следующее. Юнити поймет все что я написал в скрипте на C# (при условии что код без ошибок) или только то, что включено и описано в API Unity3D? И я подумал, раз монодевелоп поставляется сразу в связке с Unity, может он и заточен в этом варианте так, чтобы предлагать подсказки применимые для кодинга только под Unity. Потому и спросил. И вот еще -во всех скриптах что я смотрел:
Code
Using UnityEngine; Using System.Collections;
Это мы так "инструментарий" наш определяем? Могут ли в скриптах Юнити использоваться какие-то еще "инструментарии" или всегда только это? (термины я в кавычки взял тк не помню как именно это называется (пространство имен вроде))
Это понятно. Я хотел бы знать следующее. Юнити поймет все что я написал в скрипте на C# (при условии что код без ошибок) или только то, что включено и описано в API Unity3D?
Эм. Да поймет.
Quote (Самоделкин)
Это мы так "инструментарий" наш определяем? Могут ли в скриптах Юнити использоваться какие-то еще "инструментарии" или всегда только это? (термины я в кавычки взял тк не помню как именно это называется (пространство имен вроде))
Да, это называется пространством имен. Да, могут быть любые "инструментарии". Пример.
Я хочу использовать Generic List в своем коде. Generic List это (Утрированно) массив. Более правильно типизированный список объектов, доступных по индексу. Особенность заключается в том, что он не имеет фиксированного размера и в него можно добавлять только один тип объектов.
Для того чтобы такой штукой пользоваться, надо добавить
Code
using System.Collections.Generic;
Теперь мы можем написать
List<GameObject> myObjects = new List<GameObject>(); //создали список игровых объектов.
В этот List можно будет добавлять ТОЛЬКО GameObjectы
myObjects.Add(gameObject);
GameObject o = myObjects[0]; ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
при разработке в VS ошибки можно будет видеть прямо сразу там
Далеко не все, но ошибки начинающих очень многие можно видеть сразу. Например неверный регистр практически сразу видно будет, что тут ошибка. Другое дело, что чтобы найти в чем ошибка нужно все же знать язык. PS^ Да и почти все это с решарпером. Сама VS не сильно отличается от Моно. Чуть удобнее, но не намного.
Поставил VS2010 Express (пока без решарпера) - понравилось что при наведении на некоторые элементы окошко с их описанием высвечивается. Реально полезная фича. Пока еше толком не разобрался во всем, но под винды с этой штукой (VS) писать проги наверно раз в 100 быстрее чем без нее. Есть вопрос по Unity Input : В Мануале (Input - Mobile Input) сказано: Mouse simulation "Помимо поддержки нативных прикосновений (native touch support) Unity iOS/Android обеспечивает симуляцию мыши. Вы можете использовать функционал мыши со стандартным классом Input." Это значит, что если я напишу управление для тачскрина через Input.GetTouch то в режиме запуска проекта на самом Юнити, можно будет кликать мышкой и получать какой-то результат? Или просто имелось ввиду, что можно написать паралельно скрипт управления для мыши и для тачскрина (было бы странно писать о такой "фиче")?
Еще: Дробные числа в коде всегда должны быть в хитрой системе счисления? В монодевелоп/VS нет кнопочки которая бы мне сразу перевела нужное число в 8- или 16-ричную систему? Парни спасибо за помощь. Теперь я просто обязан идти семимильными шагами, а то стыдно будет. Но пока все не так шустро=)
Сообщение отредактировал Самоделкин - Понедельник, 13 Февраля 2012, 14:57