No video

Parallax in Unity / скроллинг заднего плана

  Рет қаралды 30,036

Graphical Design

Graphical Design

Күн бұрын

В этом уроке я покажу, как сделать параллакс(parallax) в Unity. Это очень крутая методика, которая добавит объем вашей 2D игре.
• 2D прыжок / двойной пр... - урок по движению персонажа
• Как сделать движение к... - урок по движению камеры
/ graphicaldesignua - мой патреон для поддержки)
unity.com/ru - ссылка на Unity

Пікірлер: 66
@bogdan9423
@bogdan9423 19 күн бұрын
Спасибо огромное за туториал! Единственное нормальное видео о том как сделать параллакс эффект 🔥
@GrandBreuil
@GrandBreuil 4 жыл бұрын
Спасибо тебе еще раз, я благодаря тебе начинаю понимать C# и вообще механику разработки игр. Спасибо😊
@naukaison
@naukaison Жыл бұрын
Задние объекты при параллаксе должны двигаться медленней, чем передние, а не наоборот, как здесь. Самый задний план (облака) буду почти неподвижны => задние объекты должны двигаться в другую сторону.
@mrminecrafter3829
@mrminecrafter3829 3 жыл бұрын
Спасибо большое автору !!!
@Shugarts
@Shugarts 5 жыл бұрын
Спасибо за урок!
@dmytrohryn8430
@dmytrohryn8430 5 жыл бұрын
Супер !!! спасибо очень позновательно
@Veyron104
@Veyron104 3 жыл бұрын
мне одному интересно зачем тебе int lastRight = rightIndex; int lastLeft = leftIndex;
@des1249
@des1249 5 жыл бұрын
Полезные знания, спасибо
@mrminecrafter3829
@mrminecrafter3829 3 жыл бұрын
Крутое видео
@user-gd8gb2jm2g
@user-gd8gb2jm2g 4 жыл бұрын
Походу тут косяк, ругаеться на private void ScrollLeft() using System.Collections; using System.Collections.Generic; using UnityEngine; public class NewBehaviourScript2 : MonoBehaviour { public float backgroundSize; public float paralaxSpeed; private Transform cameraTransform; private Transform [] layers; private float viewZone = 10; private int lefIndex; private int rightIdex; private float lastCameraX; private void Start() { cameraTransform = Camera.main.transform; lastCameraX = cameraTransform.position.x; layers = new Transform [transform.chikdCount]; for (int i=0; i < transform.chikdCount; i++) { layers[i] = transform.GetChild(i); } leftIndex = 0; rightIndex = layers.Lenght -1; } private void Update() { float deltaX = cameraTransform.position.x - lastCameraX; transform.position += Vector3.right * (deltaX *paralaxSpeed); lastCameraX = cameraTransform.position.x; if (cmeraTransform.position.x < (layers[leftIndex].transform.position.x + viewZone)) { ScrollLeft (); } { if (cmeraTransform.position.x > (layers[rightIndex].transform.position.x + viewZone)) { ScrollRight (); } } private void ScrollLeft() { int lastRight = rightIndex; layers [rightIndex].position = Vector3.right = (layers[leftIndex].position.x - backgroundSize); leftIndex = rightIndex; rightIndex -; if (rightIndex < 0) { rightIndex = layers.Length - 1; } } private void ScrollRight() { int lastLeft = leftIndex; layers [leftIndex].position = Vector3.right = (layers[rightIndex].position.x + backgroundSize); rightIndex = leftIndex; leftIndex ++; if (leftIndex == layers.Length) { leftIndex = 0; } } }
@uralfansoft
@uralfansoft 3 жыл бұрын
Во-первых, текст ошибки писать/гуглить не пробовали? Во-вторых, cmera и camera - уж определитесь
@stroyMelldom
@stroyMelldom 2 жыл бұрын
у тебя ошибок хоть жопой жуй
@pianistanton1
@pianistanton1 4 жыл бұрын
Ori топ игра, был удивлен,что на Unity сделано
@mrminecrafter3829
@mrminecrafter3829 3 жыл бұрын
Топ видео
@user-zp1ti7zz4p
@user-zp1ti7zz4p 5 жыл бұрын
Большое спасибо)
@shadowsscripts
@shadowsscripts 4 жыл бұрын
0:07 ori and the will of the wisps
@Yes.Im.Mr.Anderson
@Yes.Im.Mr.Anderson 4 жыл бұрын
Привет, вопрос по поводу viewzone - это значение берется из системы координат мира? Тоесть: если размер спрайта в данном случае был 19, то viewzone - 10, это как бы тоже значение по x?
@graphicaldesign2776
@graphicaldesign2776 4 жыл бұрын
Да.
@Yes.Im.Mr.Anderson
@Yes.Im.Mr.Anderson 4 жыл бұрын
@@graphicaldesign2776 Спасибо за уточнение и за материалы. Удачи и здоровья!
@Black_Game
@Black_Game 5 жыл бұрын
Привет. Не так давно вы опубликовали видео "Движение по клику в 3d...". Хотелось бы увидеть такой метод в 2D, как в игре, к примеру: The Masterplan. Само движение персонажа к курсору реализовать легко, но чтобы тот обходил, допустим стены, сложнее, и пока мне не понятно как это реализовать. Стоит ли ждать такого рода видео от вас? Просто мне нравится ваша подача и "доступность объяснения", вот и решил спросить/ предложить.
@graphicaldesign2776
@graphicaldesign2776 5 жыл бұрын
Добрый вечер. Пока о таком не задумывался. А почему не сделать 3d, но с видом сверху? тогда вообще никакой проблематики.
@Black_Game
@Black_Game 5 жыл бұрын
@@graphicaldesign2776 Да, этот вариант я тоже рассматривал, но тогда нужно будет переделывать все материалы(скрипты, персонажей, анимацию и т.д.), да и эффект "рисовки" пропадает. В Asset Store я нашёл плагин Nav 2D, но он платный, правда и стоит копейки, но хочется в своё обучение не вкладывать лишние деньги. А другой вариант: делать скрипт самому по зарубежным урокам/видео, что меня не очень устраивает, так-как половину информации пропускаю.
@graphicaldesign2776
@graphicaldesign2776 5 жыл бұрын
@@Black_Game я подумаю как это правильно реализовать
@Black_Game
@Black_Game 5 жыл бұрын
@@graphicaldesign2776 Спасибо!
@user-mt9jj3st6t
@user-mt9jj3st6t 4 жыл бұрын
@@Black_Game Я скачал в Asset Store бесплатный Standard Assets (assetstore.unity.com/packages/essentials/asset-packs/standard-assets-for-unity-2017-3-32351). Там есть сцена CharacterThirdPersonAI. Удалил дефолтный пол с его навмешем, сделал свой пол и препятствия стандартно по урокам Navmesh 3d. Камеру направил в пол, повесил на нее 2d Pixel Perfect для корректного отображения спрайтов, добавил спрайт персонажа, повернул к камере. Потом просто в скрипте AICharacterControl.cs добавил строчку GameObject.FindWithTag("igrok").transform.position = character.transform.position; в функцию Update. Тегом "igrok" у меня помечен спрайт персонажа. Если отключить рендерер у тела 3д-модели, создается иллюзия пойнтклик-2д. Можно анимировать спрайт с условиями, зависящими от character.transform.rotation, то есть от угла поворота 3д-модели.
@uralfansoft
@uralfansoft 3 жыл бұрын
При движении вправо в момент когда третья картинка перемещается появляется ошибка "Index was outside the bounds of the array"
@user-hf3uc9ot6e
@user-hf3uc9ot6e 9 ай бұрын
В ScrollLeft() где if поменяй leftIndex на rightIndex
@kalmikff
@kalmikff 4 жыл бұрын
ФИшка с гейм объектами не работает. "Земля" по игреку смещена на -2.4 вниз. Гейм объекты смещаются вверх на 2.4 при скроллинге, в итоге земля опять на отметке 0 по игреку
@user-bf3rn7fl9g
@user-bf3rn7fl9g 4 жыл бұрын
@KalmikFF нашел решение?
@TimonNice
@TimonNice 4 жыл бұрын
А как контролировать z-координату ? Фон в 0 становится по Z.
@sventeg5412
@sventeg5412 2 жыл бұрын
А этот способ можно использовать для раннера где персонаж стоит на месте и мне надо чтобы он просто плавно переходил
@temarig
@temarig 3 жыл бұрын
Надеюсь не поздно, а то много времени прошло) Как сделать так, чтобы фон и по y шел за персонажем. Ну то есть, когда персонаж идет вверх, то фон не остается на координате x, а двигается за персонажем?
@user-of4sq6yd8g
@user-of4sq6yd8g 3 жыл бұрын
повесить тот же скрипт на камеру и/или сделать фон дочерним от камеры
@_of_silver5257
@_of_silver5257 4 жыл бұрын
Приветствую. Спасибо за интересный и познавательный урок! Хотел бы уточнить один момент. Как настроить камеру так, чтобы не было видно нижнюю границу карты. В дополнении отмечу, что камеру привязывал к персонажу по вашему уроку.
@user-bf3rn7fl9g
@user-bf3rn7fl9g 4 жыл бұрын
зафиксировать передвижении камеры по оси игрик
@digger-us3nv
@digger-us3nv 4 жыл бұрын
Что за игрулька на фоне? Или это не игра?
@_MrWhite
@_MrWhite 4 жыл бұрын
ori
@tankix7975
@tankix7975 2 жыл бұрын
Всем привет! У меня есть игра top down(вид сверху) и мне нужно сделать повторяющийся фон. Каким образом это можно реализовать?
@gamefox8936
@gamefox8936 4 жыл бұрын
Все круто, и понятно. Но конечно же без вопроса не обойтись. А вот как сделать также, только с остравами, ну земля находится на растоянии друг от друга.
@graphicaldesign2776
@graphicaldesign2776 4 жыл бұрын
kzfaq.info/get/bejne/q9Cmgap5ybvGp2w.html
@Veyron104
@Veyron104 3 жыл бұрын
@@graphicaldesign2776 мне одному интересно зачем тебе int lastRight = rightIndex; int lastLeft = leftIndex;
@veymatcompany6959
@veymatcompany6959 2 жыл бұрын
Как сделать вертикальный параллакс?
@lazy60
@lazy60 4 жыл бұрын
Привет написал твой код вылезла ошибка "не удалось изменить возвращаемое значение "Transform.position"т,к оно не является переменной. " Почему у тебя не было ошибки и как исправить посоветуй.
@dronsan-unity7302
@dronsan-unity7302 4 жыл бұрын
ответов много может быть. ты лучше код кидай. скорее всего координату Х забыл после position
@pokazy
@pokazy 11 ай бұрын
Можно полный скрипт под мой комм пожалуйста?
@gameover2644
@gameover2644 4 жыл бұрын
А как сделать, у меня камера не движется, но надо чтоб задний фон (облака) двигались.
@ZipOfficial
@ZipOfficial 3 жыл бұрын
В updates у облоков сделай перемещение отновитсельно их нинешеншо пересечения, напишем на 1/2 пикселя от нынешнего положения, или лучше создай класс который будет вызываться по времени, update будет зависит от кадров
@Aleksandr_Mak
@Aleksandr_Mak 2 жыл бұрын
Сделал всё как в уроке. Иду влево - картинки перемещаются как задумано, кроме 2, они начинают по оси з уплывать куда то. Иду на право - ничего не работает. 3 раза перепроверил код - всё равно.
@Aleksandr_Mak
@Aleksandr_Mak 2 жыл бұрын
Отбой тревоги. Нашел ошибку. Всё работает как часы. Здвиг по оси з - фиксится большем расстоянием между слоями. Или можно засунуть в пустые объекты с нулевыми координатами картинки.
@user-zi2sl7jh3t
@user-zi2sl7jh3t 4 жыл бұрын
Graphical Design, а как сделать вертикальный паралакс, у меня игра прыгун вверх и есть все для паралакса, но у тебя урок как сделать горизонтальный
@uralfansoft
@uralfansoft 3 жыл бұрын
думай) мне тож нужен вертикальный паралакс, но он и до просмотра видео не составлял у меня проблем, я думал мож в юньке есть готовое решение, а всё равно придётся всё ручками делать ;)
@slava6105
@slava6105 3 жыл бұрын
проверяй другую ось и всё
@TeamSLywnow
@TeamSLywnow 2 жыл бұрын
отличный урок но... Массивы в c#? List для тебя какая-то шутка? Можно было бы код сократить сильно и повысить производительность просто используй ты List, вместо массива
@raxtwink
@raxtwink Жыл бұрын
просто используя lerp в 1 строку можно написать все это
@VoidShadow66
@VoidShadow66 11 ай бұрын
@@raxtwink как именно подскажи?
@deharchy
@deharchy 4 жыл бұрын
а как сделать паралакс если у меня игра 3Д но с 2Д камерой !?
@user-vz3kt6yh3m
@user-vz3kt6yh3m 4 жыл бұрын
Если я тебя правильно понял, то тебе просто следует переключить Camera.Projection на Perspective, а камеру закрепить по оси Z, чтобы "взглядом" не мог вертеть её и она смотрела на твоего персонажа(или место действия) сбоку. После расставь на заднем фоне разные 3D декорации и все эти махинации из видео с кодом не понадобятся.
@namik_mdm
@namik_mdm 3 жыл бұрын
НУ ПОЧЕМУ У МЕНЯ СРЕДНЯЯ КАРТИНКА СКРОЛЛИТСЯ ВЛЕВО КОГДА Я ИДУ ВПРАВО!!!!!!!!!!!!!!!!!!?????????????
@neuroArgento
@neuroArgento 4 жыл бұрын
Зачем ты создал int lastLeft и int lastRight если ты ни разу их не использовал? И второй вопрос, как сделать точно так же, только для двух картинок, а не для трёх? Ошибка вылезает IndexOutOfBound
@dronsan-unity7302
@dronsan-unity7302 4 жыл бұрын
тоже не понял про int lastLeft и int lastRight
@user-xk9uq9mb9w
@user-xk9uq9mb9w 4 жыл бұрын
А по вертикали как? Спасибо)
@graphicaldesign2776
@graphicaldesign2776 4 жыл бұрын
Так же, только через Y
@en_li_85
@en_li_85 4 жыл бұрын
@@graphicaldesign2776 а по диагонали
@homexp13
@homexp13 4 жыл бұрын
@@en_li_85 X + Y
Переход анимации персонажа - Unity легко
14:12
WHO CAN RUN FASTER?
00:23
Zhong
Рет қаралды 46 МЛН
艾莎撒娇得到王子的原谅#艾莎
00:24
在逃的公主
Рет қаралды 53 МЛН
The Giant sleep in the town 👹🛏️🏡
00:24
Construction Site
Рет қаралды 20 МЛН
PEDRO PEDRO INSIDEOUT
00:10
MOOMOO STUDIO [무무 스튜디오]
Рет қаралды 16 МЛН
Как подобрать/бросить предмет в Unity 2d
17:57
Parallax Infinite Scrolling Background in Unity
17:11
Code Monkey
Рет қаралды 148 М.
How To Make A 2.5D Game  - Unity
6:47
ThatOneUnityDev
Рет қаралды 119 М.
Unity 2D PARALLAX EFFECT Tutorial | Endless Scrolling Background
6:55
Налог на незнание JavaScript - [Hamster Kombat]
50:20
WHO CAN RUN FASTER?
00:23
Zhong
Рет қаралды 46 МЛН