Задать вопрос
  • Как передать имя GameObject в функцию?

    edward_freedom
    @edward_freedom
    зачем берешься за юнити, когда основ c# не знаешь?

    public void OnClickButton(string gameObjectName)
    Ответ написан
    Комментировать
  • Как создаётся вид камеры, как на скрине?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    Можно и 2д и 3д. Если 3д - то просто камера крепится сверху с определенным углом наклона. Если 2д - то все спрайты рисуются в изометрической проекции.
    Ответ написан
    6 комментариев
  • Сколько стоит ПО сканера штрихкодов, для ведения учета посетителей спортзала?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Все очень сильно зависит от ТЗ, разработка которого стоит отдельных денег и времени.

    Нужно провести аналитическое исследование, изучить потребности клиентов зала и владельцев заведения. Например, достаточно ли просто фиксировать факт входа выхода, или еще нужно использовать пропуск в зал в качестве ключика от шкафчика? А может, стоит привязать к пропуску еще и пульсометр и ввод антропометрических данных клиента в тренажеры?

    Если вы хотите продать свое поделие владельцам фитнесов (которые как правило, люди не очень дружащие с ойти, им как-то штанга роднее будет), походите сами в разные фитнесы, посмотрите, где вам больно, а где удобно, авось, родите интересную бизнес-идею.

    Слишком много вариаций существует, отсюда и огромный разброс цен. И стоимость непосредственно разработки составляет в данном случае около 1/5 всей стоимости, больше нервов и средств уйдет на аналитику и поддержку, потому что если ваше самописное чудо бахнет под утро, когда час пик и толпы разгневанных качков недожгли свои калории - у владельцев заведения будет неплохой соблазн отдать им вас в качестве тренажера.
    Ответ написан
    Комментировать
  • Как начинать игру заново?

    @namee
    Есть событие OnSceneLoaded в него можно встроить и нужную вам логику.
    Но по мне, так лучше асинхронную функцию написать перезапуска, которая

    1. загружает сцену
    2. расставляет всё по местам
    3. отдаёт контроль игроку

    А готовой функции, которая бы что-то за вас делала, увы - нет.
    Ответ написан
    2 комментария
  • Ну и где в юнити используется c#?

    GavriKos
    @GavriKos Куратор тега Unity
    Где в вашем вопросе используется русский язык? Мне кажется он там на 5-10%, остальное какие то ваши слова.

    Вот как то так вы сказали.

    По вашему C# из чего состоит то? Как раз синтаксис, "классы", логические операции. А остальное это фреймворк.
    Ответ написан
    4 комментария
  • План изучения C# чтобы стать C# junior - как улучшить?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - все перечеркнуть и начать действовать
    2 - потом можно достать скомканый черновик из корзины.. ну и допустим добавить функциональная парадигма (куда вы без LINQ уедете?.. хотя LINQ это еще далеко не вся потенциально возможная функциональщина)
    Ответ написан
    2 комментария
  • Библиотека/фреймворк для школьного проекта по физике?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    DirextX/OpenGL ))
    Будет вообще без редактора.
    Ну а так - PixiJS, pygame, всякие lobgdx, SDL...

    Для движения планет физический движок вам не сильно поможет, ИМХО. Ну или будет вносить погрешность некислую.
    Ответ написан
    Комментировать
  • Как создать длинную 2D карту?

    @namee
    Так недавно тайловые карты подвезли.
    Вполне годный вариант.
    Статья на хабре
    Документация
    Ответ написан
    3 комментария
  • Как создать длинную 2D карту?

    longclaps
    @longclaps
    Я б её делал долго.
    Думал там, отвлекался.
    Как придёт вдохновение - добавлял бы чего-нибудь.
    А когда настал бы дедлайн - напихал бы требухи всякой.

    Надеюсь, мой ответ был полезен.
    Ответ написан
    1 комментарий
  • Как сделать так, чтобы при однократным нажатии стрелок персонаж двигался в заданном направлении пока игрок не нажмет другую стрелку??

    @namee
    Подумай немного головой. Базовая ведь вещь. Чему вас на уроках учат?!
    Ответ написан
    Комментировать
  • Почему они внутри дракона?

    Griboks
    @Griboks Куратор тега C#
    Необходимо добавить проверку на минимальную дистанцию.
    void Update()
        {
           if (trig == false)
            {
                
                Vector3 rotation = player.position-enemy.position;
                enemy.rotation = Quaternion.Slerp(enemy.rotation, Quaternion.LookRotation(rotation), RotateSpeed * Time.deltaTime);
                if(rotation.sqrMagnitude > 1)
                            enemy.transform.position += enemy.forward * SpeedMove * Time.deltaTime;
                enemy.transform.localPosition = new Vector3(transform.position.x, 0f, transform.position.z);
                enemy.transform.localRotation = new Quaternion(0f, transform.rotation.y ,0f, transform.rotation.w); 
            }
        }
    Ответ написан
    1 комментарий
  • Как сделать чтобы игра Unity по ссылке открывалась у меня на сайте?

    anatoly_kulikov
    @anatoly_kulikov
    Помог ответ? Отметь решением!
    А она каким образом интегрируется в веб? Как фрейм или canvas?

    В любом случае делаете элемент, в который будет выводится игра, и ему указываете такие стили:
    .game__wrapper {
      width: 100%;
      height: 50vh; // Я же правильно понял, что нужно 50% высоты экрана?
    }
    Ответ написан
    Комментировать
  • Собственные проекты. Стоит ли доводить до идеала?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Пишите одну - максимально отшлифованную игру, а все остальные - нет и указываете: что нужно ещё доделать до идеала и почему Вы это не сделали: т.е. именно честно так всё и перечисляете.

    Сначала указываете причину создания нешлифованного проекта:
    "Проект, показывающий моё %умение/skill%...".
    И потом, пишите пункты (в readme.md), которые Вы бы сделали до идеала.
    Обязательно, после этих пунктов, приводите ссылку на проект с максимально отшлифованной игрой (чтобы могли сравнить слова с делом).
    Ответ написан
    Комментировать
  • Как вести совместное ведение проекта в Юнити?

    Griboks
    @Griboks Куратор тега Unity
    В юнити, как вы могли заметить, компонентная система. Работу над проектом разделяют на отдельные части: уровни, скрипты, персонажи, сюжет. Потом всё это соединяют.

    Git - это немного другое, контроль версий. На первых этапах у вас будет только одна и единственная версия - текущая.
    Ответ написан
    Комментировать
  • Как генерировать цвета непохожие друг на друга?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Имхо, лучше для генерации использовать HSV(hue, saturation, value), генерируя цвета с сильно отличающимися Hue
    Ответ написан
    Комментировать
  • Как генерировать цвета непохожие друг на друга?

    GavriKos
    @GavriKos Куратор тега Unity
    1) Самое примитивное - пресеты цветов. И выбирать уже из массива пресетов.
    2) Попробовать использовать HSL вместо RGB. Во первых "похожие" цвета в нем легче детектить, во вторых легче получить более разные цвета - просто параметр H генерить с каким то шагом, а не весь диапазон от 0 до 1.

    А зачем вы рандомите альфу? )
    Ответ написан
    4 комментария
  • Что нужно прописать чтобы скрипт имел доступ к переменным из других скриптов?

    GavriKos
    @GavriKos Куратор тега Unity
    Если ссылка на инстанс скрипта уже есть - то сделать переменную публичной (Public). Ну или геттер написать.

    Если инстанса нет - достать его. Тут вариантов море - DI, создание одного из другого, SerializeField, и т.д.

    Почитайте книги по шарпу. Без него будет туго.
    Ответ написан
    Комментировать
  • Как упростить переменную в C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    а еще можно сделать расширение
    для приведенного фрагмента что то типа
    public static string b64toASCII(this string s) => Encoding.ASCII.GetString(Convert.FromBase64String(s));

    преобразуем исходный фрагмент
    LocalData + "Тут".b64toASCII(), 
                LocalData + "Все ".b64toASCII(), 
                LocalData + "значения".b64toASCII(), 
                LocalData + "будут".b64toASCII(), 
                LocalData + "совершенные".b64toASCII(), 
                LocalData + "Разные".b64toASCII(),


    ps base64 явно не нужен для литералов набранных в редакторе. они вообще не требуют дополнительной обработки. это похоже на данные получаемые из сети к примеру. если разделение запятой не ошибка, значит формируется массив. и если LocalData постоянное значение для массива, можно еще и LINQ притянуть
    // сначала собираем base64 данные в массив. с большой вероятностью такой код будет проще
    // пока в нем нет обработок.
    // допустим этот массив называется b64data. тогда итоговый массив можно получить одной строкой
    var target = b64data.Select(x => (LocalData + x.b64toASCII())).ToArray();
    // ToArray() можно заменить на ToList() при желании,
    // но если и дальше использовать LINQ, проще так и шпарить IEnumerable<string>
    // в смысле убрать .ToArray() вообще
    Ответ написан
    Комментировать
  • Как упростить переменную в C#?

    FoggyFinder
    @FoggyFinder
    Можно вынести в отдельную функцию:

    string CreateASCIIStr(string value) => Encoding.ASCII.GetString(Convert.FromBase64String(value));


    или, в локальную, с использованием LocalData:

    string CreateASCIIStr(string value) =>
                    LocalData + Encoding.ASCII.GetString(Convert.FromBase64String(value));


    Добавлено:

    Пояснение: если у вас есть многократное повторение вызовов одних и тех-же методов (или функций) с разницей в один параметр, то логичным решением будет определить вспомогательную функцию (возможно локальную), в которой будет происходить цепочка вызовов.

    В данном случае у вас есть многократный последовательный вызов двух методов:

    Convert.FromBase64String и Encoding.ASCII.GetString

    для удобства их совмещаем в один вызов и получаем

    Encoding.ASCII.GetString(Convert.FromBase64String(value))

    Пример:

    string LocalData = "0";
    string CreateASCIIStr(string value) =>
        LocalData + Encoding.ASCII.GetString(Convert.FromBase64String(value));
    
    var data = new[] {
        CreateASCIIStr("Тут"),
        CreateASCIIStr("Все"),
        CreateASCIIStr("значения"),
        CreateASCIIStr("будут"),
        CreateASCIIStr("совершенные"),
        CreateASCIIStr("Разные")
    };


    Здесь возвращается массив, но если ваши совершенно разные значения в действительности являются массивом, то и обрабатывать их лучше как массив ;-)
    Ответ написан
    3 комментария