Ответы пользователя по тегу C#
  • Как встроить unity3d в WinForms?

    @Espleth
    Мм, это не совместимые фреймворки, придется все переписывать. Либо как-то дико пилить костыли, запуская 2 приложения, и гоняя между ними данные.
    Ответ написан
  • Как узнать координаты мыши относительно Canvas (C# WPF)?

    @Espleth
    Помню когда-то у меня была похожая проблема на winforms. Решал вычитая из координат мыши координату левого верхнего угла формы, как-то ее можно достать, но непомню как. Думаю вы найдете, там не проблема. Еще вычитал магическую константу по оси У, это нужно было, чтобы не считать верхнюю панельку приложения, ту, на которой расположено название и кнопки закрыть/свернуть.
    Может, на wpf как-то иначе, или я костыльно делал, но если что так должно прокатить.
    Ответ написан
    1 комментарий
  • Можете дать пару советов по C#?

    @Espleth
    Ваша главная ошибка в том вопросе была в том, что вы просто скинули нам код, мол сами разбирайтесь что у меня там не работает. Так не хорошо.
    А говнокод - это все временно. С приходом опыта код становится лучше.
    1) Рихтер CLR via C# (хотя эта книга не для начинающих, и стоит отложить ее на потом)
    Макконнелл Code Complete.
    Еще что-нибудь по алгоритмам.
    Ну и что-нибудь по C# типа Шилдта или Троелсена (я бы выбрал 2 вариант)
    2) Код программы должен быть максимально читаемым и модульным, чтобы куски кода можно было переиспользовать в дальнейшем. Еще погуглите паттерны проектирования.
    3) Избегайте конструкций, которые приводят к копипасте кода. Это главное. И второе - избегайте конструкций, из-за которых код становится менее читабельным. Например можно с помощью LINQ и лямбда-выражений написать кучу кода в несколько строчек (я так один раз по фану быструю сортировку в одну строчку написал, включая объявление метода). Так вот, так делать плохо, потому что сильно ухудшается читаемость кода. Лучше расписать это все подробнее. Будет больше строчек, но зато понятно, что написано.
    4) А вот тут не знаю. У всех свои ошибки
    Ответ написан
    1 комментарий
  • Почему не работает foreach?

    @Espleth
    Ручками дебажить не пробовали? Мы за вас тут баги отлавливать должны? Никаких пояснений, один сплошной код, вы на что надеятесь?
    Ответ написан
    Комментировать
  • Как написать игру только с использованием скриптов в Unity?

    @Espleth
    А еще почитайте, как наследоввние устроено, вы явно плохо понимаете этот момент
    Ответ написан
    Комментировать
  • Как обработать событие без принятия параметров?

    @Espleth
    Гуглите Action и Func, а еще возможно пригодятся лямбда-выражения.
    Ответ написан
    2 комментария
  • Как преобразовать char[i] в string?

    @Espleth
    Судя по вопросу, вам нужно прежде всего три вещи:
    1) Читать текст ошибки. В вашем случае почти всегда из текста ошибки будет следовать, как эту ошибку исправить.
    2) Прочитать хотя бы половинку какой-нибудь книги по C#.
    3) Когда возникает вопрос, в первую очередь смотреть в MSDN.
    Ответ написан
    Комментировать
  • Почему нужны разработчики на С# под Android?

    @Espleth
    1) Лично у меня опыт в Java небольшой, и сам я мало чего могу сказать об этом языке, но часто слышал, что с C# работать приятнее. Вот, например, статейка, где рассказывают о крутых новых фичах Java, которые уже давно есть в LINQ.
    2) Как ни парадоксально, но на C# писать кросс-платформенные мобильные приложения проще. Ну по крайней мере я не знаю аналогичных фреймворков для Java.
    3) Может быть так, что компания делала приложения на C#, после чего решили начать делать мобильные приложения. Пересаживать опытных C# разработчиков на другой язык - дело довольно рискованное, а тут под рукой оказался хороший фреймворк.
    Ответ написан
    Комментировать
  • Что изучать для Unity?

    @Espleth
    Я бы для начала прочел хотя бы половинку какой-нибудь книги по C#.
    Вот, вот вам и вот хорошие книги. Расположил их приблизительно по возрастанию сложности.
    Первая в довольно "детской" форме, за что ее многие недолюбливают, но учится по ней вполне можно. Если вам такой стиль по душе, то читайте ее. Если нет - то читайте вторую либо третью. Погуглите, почитайте поподробнее об этих книгах и выберите, что больше по душе.
    Как освоитесь можно начать изучать Unity. А вот тут, как по мне, лучше не по книгам, а по всяким туториалам, так нагляднее. В частности, если немного владеете английским (а его было бы полезно знать), то на офф сайте есть хорошие туториалы.
    Ну все выше написанное мое имхо, разумеется.
    Ответ написан
    Комментировать
  • Где найти декодер QR на C#?

    @Espleth
    Тут смотрели?
    Ответ написан
    Комментировать
  • Instantiate и Canvas s Unity?

    @Espleth
    Для начала вам нужно получить трансформ Canvas. Сделать это можно двумя способами (на самом деле больше, но тут основные): 1) Повесить тег на Canvas, и потом использовать FindGameObjectWithTag. 2) Сделать в классе, где будет вызываться Instantiate поле Transform для Canvas, и либо при старте сделать первым способом, либо вручную перетащить Canvas в Unity в это поле.
    Потом после Instantiate у созданного объекта (назовем его go) делаем go.transform.SetParent(*трансформ нашего canvas*)
    Ответ написан
    Комментировать
  • Какие сейчас актуальные книги по C#?

    @Espleth
    Обе эти книги очень хорошие и покупать их стоит. Ждать ли их переиздания под новую платформу - не знаю. Подозреваю, что ждать долго нужно будет, и не так уж и много правок будет. В крайнем случае сможете всегда скачать их с торрентов и изучить нужное. Совесть мучать не должна, книги же все равно покупаете =)
    Для начала ИМХО этих двух книг хватит. Еще могу дать вам ссылку sergeyteplyakov.blogspot.ru/2014/04/best-books-on-...
    Ответ написан
    Комментировать
  • С какого языка изучать программирования (с нуля)?

    @Espleth
    Большинство современных ЯП ИМХО имеют достаточно низкий порог вхождения, чтобы можно было начинать изучение с них, а не браться за какие-то более легкие. В том числе C#, C++ и Java. Вы правильно рассматриваете именно их. Напишу немного подробнее о каждом:

    C#: лично мне очень нравится этот язык. Перспективы хорошие, особенно учитывая то, что он транслируется в байт-код (как Java), что дает хороший потенциал для мультиплатформенности, а Microsoft потихоньку начинает развивать этот потенциал, открывая некоторые исходники. Язык относительно новый, благодаря чему обладает довольно чистым и красивым синтаксисом, и всяких костылей немного.
    Инди-геймдев на C# - это Unity3D. И хоть это очень хороший движок для игр практически любого жанра, но если он загнется, то другим движкам типа WAVE/Paradox будет тяжело тягаться с таким гигантом, как UE4.

    C++: практически универсальный язык. Если остановитесь на нем, то рекомендую осваивать вместе с Qt, так как получаете прекрасный кросс-платформенный фреймворк. Лично мне не нравятся плюсы за явные указатели и некоторые довольно костыльные решения, сделанные для того, чтобы сохранить обратную совместимость со старыми версиями языка.
    Геймдев на плюсах - Unreal Engine 4, CryEngine 4 например. Вполне возможно скоро к ним Source 2 присоединится. Это из "больших" движков. Есть еще куча поменьше, типа Cocos2d.

    Java: к сожалению, мало что о ней могу сказать, так как не особо ей интересуюсь. Из плюсов - востребованность на рынке. С Java не пропадете. Из минусов - вроде каких-либо "серьезных" игровых движков, где основной ЯП - Java нету.
    Ответ написан
    3 комментария
  • Посоветуете актуальный и хорший самоучитель по Visual C#?

    @Espleth
    Книги по C#, которые легко все гуглятся, чем не устраивают?
    Ответ написан
    2 комментария
  • Изучение C# с нуля?

    @Espleth
    Тратой времени изучение питона не будет, но если питон вас не интересует, то начинать программирование с него не особо хорошая идея.
    План обучения? Ишь чего. Книгу в руки и вперед. А тут уже гугл подскажет, какие книги есть и какие из них подойдут начинающим.
    Ответ написан
    Комментировать
  • Создание 2D игр в Visual Studio (C#)?

    @Espleth
    Используйте WPF/WinForms. Я когда начинал, делал в WinForms snake/game of life.
    Если хотите делать на C# что-то ощутимо более серьезное, то тут только Unity.
    Ответ написан
    3 комментария
  • Почему не работают события?

    @Espleth
    Ой ужас, объедините кнопки в массив и избавьтесь от дублирования кода
    Как заставить кнопки реагировать на события я вам точно сейчас не скажу, но скажу как посмотреть:
    Добавьте на форму простую кнопку. Сделайте даблклик по ней. Создастся в коде метод для события, куда вас сразу же перекинет. Нас это не интересует, нас интересует то, что создалось в автоматически сгенерированном коде (там отдельный файл, находящийся в форме). Там для вашей кнопки будет что-то типа this.button1.onClick += button1_Click; вот это именно то, что вам и нужно.
    Вообще вы так можете смотреть в этот автоматически-сгенерированный код как в шпаргалку для того, чтобы узнавать, как реализовывать такие вещи.
    Ответ написан
    4 комментария
  • Ошибка CS0120 на c# в unity, что не так?

    @Espleth
    ИМХО рано за Unity взялся. Подучи C#, прочитай хотя-бы половину какой-нибудь книжки, чтобы иметь представление о языке и ООП, а уж потом берись за Unity.
    Ну а саму проблему уже описали до меня.
    Вот как все исправить - добавить этот код:
    priate Rigidbody2D rb;
    
    private void Awake()
    {
        rb = GetComponent<Rigidbody2D>;
    }

    далее везде, где у тебя в коде написано Rigidbody2D поменять это на rb
    Ответ написан
    Комментировать
  • C# Почему не запускается программа на других компьютерах?

    @Espleth
    Есть такой способ: для начала сказать, как ведет себя приложение при запуске
    Ответ написан
  • Как отсортировать элементы строчного массива, чтобы элементы выводились по возрастанию?

    @Espleth
    А стандартная сортировка их не хочет сортировать?
    Если нет, то сделайте свой IComparer и передайте его стандартной сортировке.
    class StringComparer : IComparer<string>
        {
            public int Compare(string str1, string str2)
            {
                for (int i = 0; i < str1.Count; ++i)
                {
                    if (str1[i] > str2[i])
                    {
                        return 1;
                    }
                    if (str1[i] < str2[i])
                    {
                        return -1;
                    }
                }
                return 0;
            }
        }

    Как-то так он будет выглядеть. Там еще надо прописать на случай разной длины строк и т.п., но я надеюсь вы справитесь
    И да, гугл в помощь
    Ответ написан
    Комментировать