Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для AlltaiR
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 16

Дергается фон при смене направления

13.12.2015, 18:05. Показов 2492. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую гостей и участников форума!
Помогите пожалуйста новичку решить проблему. Имеется скрипт для циклической прокрутки фона в 2D игре т.е. прокручивает фон во время движения персонажа:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using UnityEngine;
using System.Collections;
 
public class MoveBackground : MonoBehaviour
{  
    public enum ProjectMode { moveX = 0, moveY = 1 };
    public ProjectMode projectMode = ProjectMode.moveX;
 
    public MeshRenderer firstBG;
    public float firstBGSpeed = 0f;
 
    public MeshRenderer secondBG;
    public float secondBGSpeed = 0.05f;
 
    public MeshRenderer thirdBG;
    public float thirdBGSpeed = 0.1f;
 
    private Vector2 savedFirst;
    private Vector2 savedSecond;
    private Vector2 savedThird;
 
    void Awake()
    {
        if (firstBG) savedFirst = firstBG.sharedMaterial.GetTextureOffset("_MainTex");
        if (secondBG) savedSecond = secondBG.sharedMaterial.GetTextureOffset("_MainTex");
        if (thirdBG) savedThird = thirdBG.sharedMaterial.GetTextureOffset("_MainTex");
    }
 
    void Move(MeshRenderer mesh, Vector2 savedOffset, float speed)        
    {  
       if (Input.GetKey(KeyCode.D))
        {
            Vector2 offset = Vector2.zero;    
            float tmp = Mathf.Repeat(+(Time.time * speed), 1);
            if (projectMode == ProjectMode.moveY) offset = new Vector2(savedOffset.x, tmp);
            else offset = new Vector2(tmp, savedOffset.y);
            mesh.sharedMaterial.SetTextureOffset("_MainTex", offset);          
        }  
       if (Input.GetKey(KeyCode.A))
         {
           Vector2 offset = Vector2.zero;
           float tmp = Mathf.Repeat(-(Time.time * speed), 1);
           if (projectMode == ProjectMode.moveY) offset = new Vector2(savedOffset.x, tmp);
           else offset = new Vector2(tmp, savedOffset.y);
           mesh.sharedMaterial.SetTextureOffset("_MainTex", offset);
        }    
    }
    void Update()
    {
        if (firstBG) Move(firstBG, savedFirst, firstBGSpeed);
        if (secondBG) Move(secondBG, savedSecond, secondBGSpeed);
        if (thirdBG) Move(thirdBG, savedThird, thirdBGSpeed);
    }
   
    void OnDisable()
    {        
        if (firstBG) firstBG.sharedMaterial.SetTextureOffset("_MainTex", savedFirst);
        if (secondBG) secondBG.sharedMaterial.SetTextureOffset("_MainTex", savedSecond);
        if (thirdBG) thirdBG.sharedMaterial.SetTextureOffset("_MainTex", savedThird);
    }
}
вроде работает, но есть нюанс, когда например двигаешься вправо, а потом поворачиваешься влево то фон сильно дергается.
Помогите допилить.
PS: C# начал изучать совсем недавно...
Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.12.2015, 18:05
Ответы с готовыми решениями:

Дергается текст в меню при смене картинок в слайдере
Eсть горизонтальное меню на чистом css и есть слайдер на javascript. Kаждый раз при смене картинок в слайдере все пункты меню дергается...

Дергается фон при прокрутке страницы в Internet Explorer
Здравствуйте! Установил фоновую картинку с параметром fixed, так вот в IE при прокрутке страницы она дергается, хотя во всех других...

Задний фон при смене ориентации экрана
Здравствуйте! Мне надо чтобы фон не сжимался так, а как в HTML оптимизировал под размер экрана... Заранее спасибо! (Приложение и картинка...

5
 Аватар для cortexdeveloper
8 / 8 / 3
Регистрация: 31.07.2015
Сообщений: 71
13.12.2015, 22:27
Зрасте...
Фон является дочерним обжектом персонажа?
Есть вариант, в котором он просто не по ЦЕНТРУ родителя.
0
 Аватар для AlltaiR
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 16
13.12.2015, 22:32  [ТС]
Нет, фон привязан ко второй камере... которая следит за персонажем.
Был бы признателен хоть за какой нибудь рабочий вариант!
0
3 / 3 / 0
Регистрация: 02.12.2015
Сообщений: 25
18.12.2015, 14:39
Нужно умножить на
C#
1
Time.deltaTime;
.
Попробуйте,где move написать * Time.deltaTime;
C#
1
if (projectMode == ProjectMode.moveY * Time.deltaTime) offset = new Vector2(savedOffset.x, tmp);
Добавлено через 2 минуты
Это пример!Возможно ещё придётся задать скорость ещё,проще говоря умножить ещё на кокое-нить число.Например: к Time.deltaTime * 20F);
0
 Аватар для AlltaiR
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 16
18.12.2015, 20:43  [ТС]
Возможно я что то не так понял но у меня ошибка

Оператор "*" невозможно применить к операнду типа "MoveBackground.ProjectMode" и "float"
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
23.12.2015, 00:08
Нужен эффект параллакса? Почему бы не поставить фоны рядом, сделать их дочерними пустому го и двигать родителя по координате X*0.05 персонажа?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.12.2015, 00:08
Помогаю со студенческими работами здесь

Поиск направления поворота и получения координат в зависимости от текущего направления в радианах
Здравствуйте! Первый вопрос заключается в следующем: как получить координаты точки относительно вектора направления. Дано угол...

Дергается меню при наведении мышки
Создал меню в бутстрап мышка наведена на средний пункт и он дернулся потому что появилась граница, вот стили .navigation1...

Дергается изображение при выключенной вертикальной синхронизации
Здравствуйте. Надеюсь в ту тему написал, потому что по сути проблема не столько в самой видеокарте, сколько в софте. Имею ноутбук,...

Дергается кулер при включении системного блока
Добрый день! Стоит материнская плата GA-945GZM-S2 от gigabyte. При нажатии на кнопку включения системного блока, кулер пару раз дергается,...

Приложение дергается вверх-вниз при наведении мыши
Доброго времени суток форумчане. Обращаюсь к вам за помощью. Несколько месяцев назад появилась данная проблема. Как только я навожу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru