С Новым годом! Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 16.08.2022
Сообщений: 4

Как сделать анимации движения персонажа в 2D?

16.08.2022, 03:00. Показов 951. Ответов 10

Студворк — интернет-сервис помощи студентам
Здравствуйте, я полный новичок в Unity, и хочу сделать свою игру в 2D. Я уже сделал движение персонажа с помощью клика мыши в нужную точку (как в Diablo), но не знаю, как сделать так, чтобы при движении по горизонтали и по вертикали у меня менялся спрайт персонажа на нужный. Ну или по простому поворот персонажа в сторону движения.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.08.2022, 03:00
Ответы с готовыми решениями:

Как сделать смешивание анимации при поворте персонажа
Уже третий день пытаюсь сделать плавное изменение анимации при повороте всего персонажа, пока получается только 7Ff73_mR5zU За...

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

Как сделать плавный поворот персонажа в сторону его движения в 2д?
Делаю игру TD, у меня есть персонаж, который ходит по заданной дороге ( состоит из точек и он бегает по ним). НО он бежит не поворачиваясь,...

10
12 / 7 / 6
Регистрация: 05.01.2021
Сообщений: 162
16.08.2022, 09:18
А если scale изменить на отрицательный?
0
 Аватар для Uzist
209 / 143 / 68
Регистрация: 09.05.2020
Сообщений: 747
16.08.2022, 10:53
https://docs.unity3d.com/Scrip... ookAt.html
0
0 / 0 / 0
Регистрация: 16.08.2022
Сообщений: 4
16.08.2022, 13:32  [ТС]
Я совсем новичок в Unity и хотел бы узнать, как мне сделать так, чтобы модель персонажа менялась в зависимости от стороны его движения, мне надо, чтобы он поворачивался влево\вправо и вверх вниз. Спрайты для этого есть, но как их задействовать не знаю. А ещё у меня управление персонажем как в Diablo, так что вообще ничего найти не могу.
0
399 / 308 / 104
Регистрация: 07.05.2017
Сообщений: 2,201
16.08.2022, 16:42
А ещё у меня управление персонажем как в Diablo, так что вообще ничего найти не могу.[/quote]
врешь как дышишь . по управлению в 2D роликов как ...овна. да и полезно будет сопутствующие моменты почерпнуть.
лучше посмотри что нибудь на эту тему. поверь )))

сделал запрос в ютьюбе так: "управление как в Diablo Unity"
и результаты есть. вот самый первый в списке:
0
 Аватар для Uzist
209 / 143 / 68
Регистрация: 09.05.2020
Сообщений: 747
16.08.2022, 21:24
FerbyX, получаешь позицию нажатия мыши.И эту же позицию используешь в качестве аргумента в методе LookAt, я же скинул документацию
0
0 / 0 / 0
Регистрация: 16.08.2022
Сообщений: 4
17.08.2022, 02:48  [ТС]
Видео которое вы прикрепили мне не подходит. У меня 2Д пространство и достаточно чтобы спрайт персонажа менялся во время движения по Y и X координатам. Если не понятно, то загугли в ютубе игру RimWorld, вот там у персов только четыре состояния. (Про диабло я спрашиваю, потому что она более популярна и максимально похожа на то что я хочу получить)

Добавлено через 7 минут
Сорри, коммент продублировался, а так честно я не особо понял, как это мне поможет. Зачем мне получать позицию мыши, если мне нужно написать буквально: если игрок движется по координате +X нужно заменить его спрайт на спрайт№1, если по -X на спрайт№3, а если +Y то на спрайт№4 и -Y спрайт№5. Буквально всё, мне этого достаточно, просто я не знаю как это записать в виде кода.

Добавлено через 1 минуту
А ещё проблема Diablo в том, что оно в 3D, у меня же 2D.
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
17.08.2022, 11:33
var d = позиция_куда_бежит_игрок - позиция_игрока_в_данный_момент;
if (d.x < 0) и так далее
0
 Аватар для Uzist
209 / 143 / 68
Регистрация: 09.05.2020
Сообщений: 747
17.08.2022, 18:01
Цитата Сообщение от FerbyX Посмотреть сообщение
У меня 2Д пространство и достаточно чтобы спрайт персонажа менялся во время движения по Y и X координатам.
понятно, тогда просто проверяй на <или> 0 переменную движения, например
C#
1
2
3
4
5
float moveVert=Input.GetAxis("'Vertical);//это твоя переменная движения по оси y
if(moveVert<0)
//запуск анимации
if(moveVert>0)
//запуск анимации
если твоё движение сделано не через getAxis, и ты не можешь понять, что у тебя является переменной движения, то просто скинь код, подскажу
0
0 / 0 / 0
Регистрация: 16.08.2022
Сообщений: 4
17.08.2022, 20:29  [ТС]
А этот код надо в отдельный скрипт или в скрипт движения внедрять? У меня движение происходит с помощью клика правой кнопки мыши.
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
public class ClickMove : MonoBehaviour
{
    public float speed;
 
    private Vector3 TPosition;
    private bool isMoving = false;
    void Update()
    {
        if (Input.GetMouseButton(1))
        {
            TriggerPosition();
        }
 
        if (isMoving)
        {
            ItsMove();
        }
 
    }
 
    void TriggerPosition()
    {
        TPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        TPosition.z = transform.position.z;
 
        isMoving = true;
    }
 
    void ItsMove()
    {
        transform.position = Vector3.MoveTowards(transform.position, TPosition, speed * Time.deltaTime);
 
        if (transform.position == TPosition)
        {
            isMoving = false;
        }
    }
}
0
 Аватар для Uzist
209 / 143 / 68
Регистрация: 09.05.2020
Сообщений: 747
17.08.2022, 22:10
FerbyX, аа, ну раз у тебя так, то твоей переменной движения будет разница между позицией мыши и позицией игрока.
C#
1
2
3
4
5
float moveVert=transform.position.y-TPosition.y;
if(moveVert<0)
//идет вверх
if(moveVert>0)
//идет вниз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.08.2022, 22:10
Помогаю со студенческими работами здесь

Как при управлении через rb сделать повороты персонажа в сторону движения?
Двигается мой персонаж с помощью rb.velocity, если это важно. Я в программировании зелёный, смог написать только вот такой код,...

Unity как сделать поворот персонажа в сторону движения через джойстик
using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; public class MobileController :...

Как удалить персонажа через 5 секунд после анимации смерти? Как его отправить на респ?
Написал такой код, после чего персонаж падает и лежит на земле, как через время его уничтожить, желательно чтобы его текстура медленно...

OnMouseDrag Как ограничить область движения персонажа
Добрый день, делаю скрипт, чтобы персонаж двигался синхронно сенсорному касанию. Попробывал через OnMouseDrag, навесил этот скрипт на...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru