Показать сообщение отдельно
Старый 30.12.2020, 05:26   #4
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Ответ: Что-то не то с RawImage.

Сообщение от pax Посмотреть сообщение
По идее первая проблема связана с маппингом текстуры. Т.е. вот этот желтый кусок у тебя скорее всего есть с другой стороны текстуры. Обычно такое решается установкой параметра Wrap Mode = Clamp в настройках импорта.
А по поводу второй проблемы - в очередной раз призываю использовать анимации, а не код для таких задач)
С первым ничего не понял.
Со вторым, у меня ещё было много вариантов кода,
и проблема не решалась, из-за того, что у юнити всё в
рандомно-примерных флоатах, векторах, а дальтатайм
вообще срабатывает через разное время.

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

А на счёт анимаций. Ну хз, я здесь подстраиваю картинки под высоту
и ширину экрана, заведомо не зная какое разрешение у игрока,
как это делать через анимации без кода я хз )

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

if (GLOBALSUPERSCRIPT.CamStop == 0 && FightScene.ZanaveskaSost == 1) { GLOBALSUPERSCRIPT.CamStop = 1; SW = Screen.width; }

        if (FightScene.ZanaveskaSost == 1 && LH < SW)
        {
            if (ZanaveskaLeft.gameObject.activeSelf == false)
            {
                ZanaveskaLeft.gameObject.SetActive(true);
                ZanaveskaRight.gameObject.SetActive(true);

            }

            if (SuperTimer < 1f) { SuperTimer = SuperTimer + 1f * Time.deltaTime * 1000; }

            if (SuperTimer > 0f)
            {
                LH = LH + Mathf.Floor(20f);
                SuperTimer = 0f;

                rectTransfrom.offsetMax -= new Vector2(Mathf.Floor(-10f), 0);
                rectTransfrom2.offsetMin -= new Vector2(Mathf.Floor(10f), 0);


                ZanaveskaLogoLeft.transform.Translate(Vector2.right * Mathf.Floor(10f));
                ZanaveskaLogoRight.transform.Translate(Vector2.left * Mathf.Floor(10f));

            }
        }

        if (FightScene.ZanaveskaSost == 1 && LH >= SW && MicroTimer == 0f)
        {
            MicroTimer = 2f;
            float a = Mathf.Floor(ZanaveskaLogoLeft.transform.position.y);
            float b = Mathf.Floor(ZanaveskaLogoRight.transform.position.y);

            ZanaveskaLogoLeft.transform.position = new Vector2(Mathf.Floor(SW / 2 - 256), a);
            ZanaveskaLogoRight.transform.position = new Vector2(Mathf.Floor(SW / 2), b);
        }
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием