Ответы пользователя по тегу C#
  • Как вместо выборки И сделать ИЛИ?

    MrMureno
    @MrMureno
    VR for all
    уж простите LINQ немного не мое, но банально по логике
    вы в цикле выбираете список людей(из уже отфильтрованного на прошлом шаге цикла) - людей с нужным признаком.
    по сути каждый раз отсекая все больше и больше людей.

    а надо один раз найти людей, у которых есть хотя бы один признак.
    так что правильно по сути делали создав список всех "компетенций"

    а потом проверить бы
    qpeople = qpeople.Where(x => x.CompetencyAssignments.Any(ca =>filter.CompetencyIds.Contains(ca.CompetencyId));

    и без цикла. просто выбрали людей) если и вправду надо чтоб "если хотя бы что то из требуемого списка присутствует)
    Ответ написан
    1 комментарий
  • Подпапки Resources в unity?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    в редакторе если - то хоть простым доступом к фаиловой системе. директория и содержимое.

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

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    может. но надо чтоб это сделали вы. чтоб научиться.

    и по оформлению вопроса - код оформить как код.) не зря же здесь разметку делали.

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

    а еще если вы сами прочитаете описание ошибки - и немного погуглите и какие-то основы программирования изучите - вопрос отпадет.
    Ответ написан
    1 комментарий
  • Unity raycast hit 2d как отследить пустоту?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    hit - будет хранить последнее значение куда попало. пока во что-то не врежется.
    нет у физики в юнити понятия - "столкнулось с пустотой".

    так что вам или занулять пред каждой проверкой (хотя не помню работает ли это) или какой-то один глобальный коллайдер/тригер аля "граница мира" делать)

    ну и вообще логика физики предполагает реакцию на "что-то что есть". столкновения, пересечения и тд)
    попробуйте написать
    что скролится/двигается/что оно у вас там делает всегда, а прекращает, если луч врезался во что-то.
    Ответ написан
  • Поворот стрелки радара (2D объект) в сторону цели (3D объект). Как реализовать?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    собственно для перехода из 3д в 2д
    https://docs.unity3d.com/ScriptReference/Vector3.P...

    у вас есть
    -позиция игрока.
    - позиция метки

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

    еще как вариант сравнить направление к метке и направление forward игрока.
    получим в итоге "правее" "левее" "сзади" и в таком духе. и на 2D просто отображаем.

    а вообще в чем именно проблема?
    сделайте начальную хотя бы попытку реализации (если будет проще то просто 3д стрелка/палка в сторону метки) ,а там уже подправить можно будет)
    Ответ написан
    Комментировать
  • Unity вычисление времени отсутствия?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    float time смотрели именно? или сразу TheTime ??
    (хотя локальный формат сохранения времени, наверное не учитывает секунды. в строку сохраняет только минуты) почти наверняка дело в формате))

    у себя когда делали сверку с сервером, то время хранили в миллисекундах.
    и к тому же в UTC, чтоб не было проблем с форматом локальным времени и тд. просто одинаковые для всех числа)
    //save
    long currenttime = System.DateTime.UtcNow.Ticks;
    PlayerPrefs.SetString("key", currenttime.ToString());
    
    //load
    long savedTime = long.Parse(PlayerPrefs.GetString("key", currenttime.ToString()));
    System.TimeSpan timeSpan = System.DateTime.UtcNow - new System.DateTime(savedTime);
    Ответ написан
  • Как изменить цвет освещения?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    просто дополню ответ Dance Macabre
    в Unity есть два класса для цвета Color и Color32.
    просто откройте документацию и почитайте. в чем разница и станет понятнее куда и что задавать.
    Ответ написан
    3 комментария
  • Как построить лепестковую диаграмму в exel с помощью c#?

    MrMureno
    @MrMureno
    VR for all
    KryptoPython, надо же как) и все же если вы уже нашли как создать Chart в экселе, и подставляете диапазон данных, то там по сути просто изменить
    chartPage.ChartType = Excel.XlChartType.xlColumnClustered;
    на
    chartPage.ChartType = Excel.XlChartType.xlRadar;

    вот условная ссылка к примеру.
    https://stackoverflow.com/questions/1426240/excel-...
    Ответ написан
    1 комментарий
  • Как сконвертировать pdf с текстовым слоем в pdf, в котором невозможно выделить текст(как картинка) на C#?

    MrMureno
    @MrMureno
    VR for all
    нет. в Word встроенного нету.
    придется вам в картинки превращать.Или Adobe библиотечкой или какой то сторонней, вроде https://www.ghostscript.com/.
    но в любом случае, все это внутри сводится к превращению в картинки и склеике pdf из картинок.

    вот к примеру, хотя уверен и так натыкались
    https://stackoverflow.com/questions/23905169/how-t...
    Ответ написан
  • Как настроить порядок отображения объектов на сцене?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    у вас тут не 2D получается, а больше похоже на 2.5D или изометрию)
    можете попробовать нагуглить как это там решается.
    обычно что-то в духе скрипта, которой в зависимости от дальности (а в вашем случае чем выше) изменяют как раз OrderLayer

    Условно. мечь, голова, одежда и тд. под них резирвируем 10 "слоев"))
    и вот если Y = 0., то слои у персонажа будут (1,2,3..)
    если же он стал в другой ряд и Y = 1 то слои персонажа становятся (11,12,13...)

    но это так один из вариантов как избежать наслоения.
    или использовать не спраиты, а честно в 3D расставлять Quad или Plane по Z оси))
    Ответ написан
    1 комментарий
  • Почему Resources.Load() выдает null?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    pistolSprite =  Resources.Load <Sprite> (pistolPath);	
    //или если несколько внутри то 
    Sprite[] pistolSprites =  Resources.Load <Sprite> (pistolPath);


    так должно работать. в вашем варианте возможно находило именно текстуру, а потом пробовало в спраит преобразовать из за указания typeof(Sprite)
    Ответ написан
    2 комментария
  • Как правильно сделать функцию для повторяющихся действий?

    MrMureno
    @MrMureno
    VR for all
    Вы не поверите, но просто взять и сделать отдельным методом/функцией))

    параметры для функции определить не можете?? ..разбирайте тогда примеры попроще, учитесь. разве не для этого такие задания/лабораторные работы делают
    Ответ написан
    4 комментария
  • Идеальный паттерн для игры?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    тут наверное важно не путать "паттерн проектирования" и "концепцию архитектуры"

    их правда называют малость иначе))
    вот из той же википедии
    "На наивысшем уровне существуют архитектурные шаблоны, они охватывают собой архитектуру всей программной системы."
    всякие MVC и иже с ними.

    а теперь касательно проекта на Unity - тут к сожалению нет. вот просто нет универсальной пилюли.
    проекты очень разные. и Unity довольно навязчива со своим компонентным подходом диктует условия.

    а что если сетевой уровень еще.
    а что если хотим ECS новый и Jobs использовать.

    Не бывает супер удачно всем подходящей) делаем. смотрим что не так. исправляем и переделываем. в следующий раз с опытом выйдет лучше.
    Еще вариант поглядеть чужое. разобрать досканально, понять почему тут так сделали.
    Пару чужих проектов - и можно свою "идеальную" попробовать навернуть))
    Ответ написан
    Комментировать
  • Почему данный код не работает?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    попробую пояснить как то попроще что ли))

    Вот вы запустили короутину в строке
    StartCoroutine(ExecuteAfterTime());
    оно тут же начнет её выполнять, и выполнит все вызовы внутри короутины пока не наткнется на какое нибудь "подождать", в вашем случае
    yield return new WaitForSeconds(1);

    наткнулось -> вернулось тут же в основной поток и продолжило выполнять
    temp.transform.position = pointss[i]; и далее цикл.

    и условно спустя "подождать", оно продолжит выполнять короутину (снова из основного потока заглянув в нее)
    (на деле там конечно малость иначе, но для понимания сойдет)

    void ChangePos(List<Vector2> pointss, GameObject temp)
        {
            for (int i=0; i<pointss.Count; i++)
            {
                StartCoroutine(ExecuteAfterTime());
               Debug.Log("from FOR _"+i.ToString());
                temp.transform.position = pointss[i];
            }
        }
    
        IEnumerator ExecuteAfterTime()
        {
            yield return new WaitForSeconds(1);
           Debug.Log("Arter 1 second");
        }


    попробуйте вот такой код и поймете, когда и что вызывается.
    и что в общем то верно вам пояснили, что если хотите растянуть цикл во времени, то весь его в короутину запихать.
    Ответ написан
    Комментировать
  • Как подключиться и получить данные с websocket'а сайта exmo.me на C#?

    MrMureno
    @MrMureno
    VR for all
    https://exmo.me/ru/api#/public_api
    так у них есть готовое апи с примерами. неужели там нет курса вам нужного?
    и даже если нет, то возможно все же проще будет в поддержку написать ,чем раскапывать их протокол общения по вебсокету)
    Ответ написан
    1 комментарий
  • Почему в Unity, объекты "спавнится" выше другого объекта?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Spawn[i].transform.localScale.y + i
    вот как минимум этот момент вам не зря выделили..
    вы на скэил(масштаб) УМНОЖАТЬ должны, как минимум. а не плюсовать его.

    вы получается в глобальных мировых координатах, берете масштаб, как расстояние.
    вот и получаете, что у вас спавнятся объекты на N + i выше)) в мировых координатах.

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

    ну и напоследок. заранее.
    у вас смотрю на дереве коллайдер. и на создаваемых ресурсах чую тоже есть коллайдер))
    у вас один коллайдер из другого будет выталкиваться..если не отключите на дереве.
    Destroy срабатывает не моментально и успеет физику посчитать))
    Ответ написан
  • Как конвертировать JSON в многомерный массив?

    MrMureno
    @MrMureno
    VR for all
    как преобразовать?? ручками..
    все верно вам саит выдает..
    две страны в каждой список городов....

    у вас нет массива внутри cities

    возможно вы хотели
    {
      "cities": [{
        "CountryName": [{
            "name": "Sentra"
          },
          {
            "name": "Sentra"
          },
          {
            "name": "Sentra"
          }
        ],
        "CountryName2": [{
            "name": "Sentra"
          },
          {
            "name": "Sentra"
          }
        ]
      }
    ]
    }


    и то вам сгенерирует список списков.
    можете обосновать зачем вам именно многомерный массив..и чем список списков вас не устраивает??
    Ответ написан
    8 комментариев
  • Как вы реализуете свайпы в unity?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    если вы все так делали то ничего удивительного..
    общий принцип жеста "сваип"

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

    а не каждый кадр как у вас считать))
    У тача есть фазы. старт. движение. отмена. конец...увидите в документации.
    как собственно у мышки есть -НАЖАТА. ЗАЖАТА. ОТПУЩЕНА ))
    https://docs.unity3d.com/ScriptReference/Touch-pha...
    https://docs.unity3d.com/ScriptReference/Input.Get...
    и тд
    Ответ написан
    Комментировать
  • Как запретить редактору вызывать "readonly static" во время редактирования?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    посмотрите примеры плагинов локализации. в том же ассет сторе.
    это паршивый вариант кешировать - сохраняя хардкодом в статик поля.

    обычно у плагина локализации есть отдельно фаил ресурсов. где все локализации.
    нужную на старте вытащили. в оперативку/сцену запихнули и используете.

    это уже само по себе кеширование. от того что вы все это в переменные readonly static понапихаете лучше не станет))
    Ответ написан
  • Как сделать ДВА прыжка в платформере на Unity?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    стандартный платформ контhоллер из стандарт ассетов..содержит в себе пример и туториалов куча.

    делается проверка на "касание земли". прыжок можно сделать только если после совершения прыжка было "касание земли. и от сюда уже пляшет дабл джамп и так далее..

    https://unity3d.com/ru/learn/tutorials/topics/2d-g...
    вот к примеру. тут по направлению вроде определяют..но суть все равно во флаге grounded
    Ответ написан
    2 комментария