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

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    "как мне заваривать напиток? я вот лью жидкость в порошок, который в емкости, но напиток не заваривается"

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

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

    надеюсь вы понимаете что тут пытаюсь указать вам что постановка вопроса ужасная и с кучей неясностей?!
    что за враг. что вы понимаете под "бок и спина". Криво работает это как? не всегда?
    в примере кода вообще позиции и ничего про повороты нет.

    мой совет - попробуйте для себя разобраться и толково описать проблему - скорее всего и вопрос отпадет,когда думать над этим начнете.
    Ответ написан
  • Unity 2D - pixel art спрайты рябят при повороте, как решить проблему?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    как по вашему на листочке в клеточку линию под 30 или 45 градусов нарисовать не "ступеньками"?

    добавить слегка полупрозрачных пикселей -чтоб казалось не таким "ступенчатым". собственно anti aliasing в настройках качества этим и занимается.

    ну или разрешение экрана/клеток - супер мелкое по сравнению с толщиной линии.
    Ответ написан
    Комментировать
  • Объект который движется в стороны, при движении по диагонали скорость увеличивается unity C#?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    предложу вам начертить на листочке в клеточку.
    вектор силы размером в единицу по Х (1;0)
    потом вектор силы размером в единицу по У (0;1)
    теперь сложенный вектор (1;1)

    с удивлением увидите что "диагональ" (размер вектора) больше будет. соответственно и сила.

    как исправить? обычно если это просто вектор направления - то его нормализуют.
    надеюсь понятно было. удачи)
    Ответ написан
    3 комментария
  • DivideByZeroException при попытке найти число, приближённое к числу Эйлера. Как исправить?

    MrMureno
    @MrMureno
    VR for all
    давайте предположим что у вас нормально с английским и вы поймете о чем тут речь
    https://stackoverflow.com/questions/32042346/why-d...
    полностью должно для вас пояснить что произошло.
    Ответ написан
    Комментировать
  • Как приравнять вектора?

    MrMureno
    @MrMureno
    VR for all
    у вас есть одна точка, есть вторая - находите между ними расстояние

    найденное расстояние сравниваете с допустимой дистанцией (радиусом нажатия)

    if( vector2.dictance( point1, point2)<=ClickDistance){}

    как найти расстояние между точками - погуглите) геометрия)
    Ответ написан
    4 комментария
  • Как хранить изначальные данные в Unity под Andriod?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    а как и где вы храните xml фаил?)
    в той же андроид сборке прекрасно грузит фаилы из тех же Streaming Assets (только раньше точно надо было через WWW грузить его, ибо там не совсем фаил, а через точку монтирования из сборки)

    можете еще почитать про AssetBundles и Scriptable Object.

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

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Давайте я накидаю вам ссылок-подсказок.
    а вы придумаете как поделить экран пополам))
    https://docs.unity3d.com/ScriptReference/Rect.html
    https://docs.unity3d.com/ScriptReference/Rect.Cont...

    https://docs.unity3d.com/ScriptReference/Input-mou...

    и для понимания что можно на мультитач экранах каждый тач отдельно отслеживать, проверять сколько там пальцев экран трогают и тд)
    https://docs.unity3d.com/ScriptReference/Input.Get...

    ну и напоследок - размер экрана в пикселях можно тут найти.
    https://docs.unity3d.com/ScriptReference/Screen.html

    в итоге у вас есть размер экрана в пикселях, позиция тача(клика) (в экранных координатах/ пикселях)
    и метод проверки попали ли координаты в прямоугольник)

    (еще есть вариант повесить несколько разных кнопок/спраитов/объектов, и эвенты к ним прикрутить на основе UI или ручками лучи послать проверить, но думаю вариант с экранными координатами должен вас устроить,если задача - просто пополам)
    Ответ написан
    Комментировать
  • Как исправит ошибку в условиях if( Operator '!' cannot be applied to operand of type 'method group')?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    if(!pS.Play)

    в этой строке скорее всего неверно
    Play( ) - это метод у объекта pS.
    Вам же в условии нужен тип bool, а значит у объекта pS вам надо взять или переменную (к примеру isPlaying) или вызвать метод, который возвращает bool.

    Добавлю ссылочку- чтоб посмотрели какие поля и методы есть
    https://docs.unity3d.com/ScriptReference/ParticleS...
    Ответ написан
    1 комментарий
  • Пропущена директива using или ссылка на сборку c#?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Давайте попробуем научиться и разъяснить)))
    Вот ваш код из комментариев к другому ответу (чтоб понятнее было о чем речь идет другим людям)
    public class player : MonoBehaviour
    {
    public static bool lose = false;
    private void OnTriggerEnter2D(Collider2D other) {
    if (other.gameObject.tag == "bomb")
    lose = true;
    }


    Теперь к сути.
    В принципе к статичной переменной можно обратиться через
    НазваниеКласса.ИмяПеременной
    БЕЗ каких либо ссылок на объект, на то она и статика.

    Но у вас
    переменная и класс называются ОДИНАКОВО (не говоря уже про то что классы б с заглавной именовать)
    //public Transform player;
    public  SomeClassName someObjectRef;
    //////
    //bool flagFromStatic = player.lose;
    bool flagFromStatic = SomeClass.staticVariableInClass;
    bool flagFromClassObject = someObjectRef.nonStaticVariableInClass;


    в общем тут явно требуется изучить ОСНОВЫ языка и программирования как такового.
    удачи
    Ответ написан
    Комментировать
  • Как сделать так чтоб текст в юнити 2D увеличился на 1 каждую секунду?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    прочитайте в документации про
    Update
    также найдите про
    Time.deltaTime
    UI.Text (или любой другой текст куда собираете вписывать)

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

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    описание очень плохое и вправду)

    в чем проблема сделать список GameObject'ов
    List<GameObject> currentGOList;

    циклом по нему пройтись - вы тоже должны были в глаза "for" видеть.
    проверить размер - бери transform.scale и проверяй.

    удалить и добавить элемент списка - тоже проще простого (тут только не забыть бы вам что индекс в списке сместится и скорректировать )

    Вы бы хотя бы начали реализовывать -> столкнулись с проблемой какой-то -> сюда писать с "почему-то не заменяется удаленный объект на новый из запасного списка" или с подобным вопросом и примером своего кода.
    Ответ написан
    4 комментария
  • Почему Не срабатывает функция OnMouseUpAsButton?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    для начала читаем тут
    https://docs.unity3d.com/ru/current/ScriptReferenc...

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

    на каком-то из элементов кнопки должна стоять галочка Raycast target (на тексте, подложке или любой другой графике, чтоб пометить её как НАЖИМАЕМУЮ условно)

    ну не забывать что все это может еще по слоям работать если вдруг меняли с дефолтного.

    а вообще стоило бы прикладывать скрины иерархии и инспектора, чтоб видно было что за кнопка и что у вас в сцене.
    Ответ написан
    Комментировать
  • Почему события при контакте с триггером в Unity 2d плывут?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    звучит все как будто у вас там не один один объект касается триггера, а целая пачка.

    сделайте мини сцену. где ТОЛЬКО ОДИН триггер и ТОЛЬКО ОДИН объект, который его коснется и НИКАКИХ лишних скриптов и логики.

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

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    думается что все же основная проблема в "Установить пак CrossPlatformInput не получается"

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

    Есть жесткое подозрение, исходя из момента
    "...я сделал все так-же: Assets=> import packege но там CrossPlatformInput нет..." - что автор вопроса пробует повторять действия из старых уроков (годика так два и более давности).

    Для версий 2017 и постарее можно найти тут https://unity3d.com/ru/get-unity/download/archive
    Для 2017.3, 2018 ,2019 - https://assetstore.unity.com/packages/essentials/a... в ассет сторе качать.
    Ответ написан
    Комментировать
  • Почему не показывается тестовая реклама?

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

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

    Update
    предлагаю посмотреть вот сюда.
    пример как дождаться когда загрузится, по кол беку, для гугловой рекламы.
    https://developers.google.com/admob/unity/banner

    так же можно узнать была ли ошибка и так далее.
    Ответ написан
  • Как из нескольких клеток выделять только 1?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Давайте попробую попробовать пояснить суть))
    LightOn - скрипт висит у вас видимо на каждой клетке.

    и на каждой клетке есть поле/ссылка - public GameObject lastChaged.

    и одна клетка про другую клетку - ничего знать не знает.
    проверка - а было ли что-то выделено - проверит локальную для текущей клетки ссылку lastChaged - и ничего не обнаружит.

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

    или ввести глобальную переменную "текущая выделенная".
    чтобы любая клетка могла узнать про это.

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

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Давайте попробую пояснить что не так.
    foreach (GameObject tmp in Group)
    {
    }

    вот тут вы запускаете перебор всех элементов.
    но потом вы МЕНЯЕТЕ КОЛИЧЕСТВО элементов в коллекции.
    Group.Remove(tmp);

    и вот нумератор проходит по индексам, а они уже не совпадают.(после старта не обновляются).

    В итоге если мы уничтожаем (не удаляем) объект по ссылке , через Destroy(gameObject);
    остается список из ссылок на null;

    Если же удаляем объекты из коллекции во время похода по коллекции - получаем ошибку с индексами.

    как решить.
    или сделать через for
    for(int i =0; i <list.Count;i++)
    {
    Destroy(list[i]);
    list.RemoveAt(i);
    i--; // сместили индекс,если было удаление, так как размер коллекции уменьшился


    другой вариант - просто после цикла с Destroy(gameObject);
    почистить список list.Clear(); (если все зараз всегда удаляются)

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

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Хотел перепечатать, но по сути вам бы просто на английском искать и найти вот это
    https://forum.unity.com/threads/getting-the-distan...
    надеюсь хватит знания английского прочитать.

    если в кратце, то построить -> проверить статус -> узнать дистанцию.
    Ответ написан
    Комментировать
  • Почему резко упал размер приложения?

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

    размер "упал" ?? вроде понятно что уменьшился, но не факт)

    из за чего? из-за того что поменяли что-то)

    может быть причиной? может, а может и нет)

    скорее всего вам придется вспоминать что именно случилось в момент изменения размера.
    новая версия юнити, перешли с mono на ill2cpp, убрали поддержку x86.
    может просто удалили что то из папки StreamingAssets или что-то подобное))

    пока что ваш вопрос выглядит как "а у меня кампутер не включается, что починить надо?"
    Ответ написан
    5 комментариев
  • Как проверить активна ли анимация в if?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    а возьмите не Bool, а тригер.
    animator.SetTrigger
    он сам сбрасывается после перехода по нему.

    проставили -> аниматор перешел по тригеру и сбросит его.
    Ответ написан
    1 комментарий