Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/88: Рейтинг темы: голосов - 88, средняя оценка - 4.94
1 / 1 / 1
Регистрация: 22.05.2017
Сообщений: 35
1

Как зеркально отразить спрайт?

24.07.2017, 23:56. Показов 16675. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
у меня объект двигается за мышью, мне нужно чтобы например при движении мыши направо или налево спрайт разворачивался, помогите пожалуйста
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
using UnityEngine;
using UnityEngine.UI;
 
public class Control : MonoBehaviour {
 
    public Transform player;
 
 
    [SerializeField]
    private float speed = 10f;
 
    void OnMouseDrag () {
        if (!playerr.lose) {
            Vector3 mousePos = Camera.main.ScreenToWorldPoint (Input.mousePosition);
            mousePos.x = mousePos.x > 2 ? 2 : mousePos.x;
            mousePos.x = mousePos.x < -2 ? -2 : mousePos.x;
 
            
            player.position = Vector2.MoveTowards (player.position,
                new Vector2 (mousePos.x, player.position.y),
                speed * Time.deltaTime);
        }
    }
        
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2017, 23:56
Ответы с готовыми решениями:

Как зеркально отразить персонажа?
public Transform player; public float speed = 10f; void OnMouseDrag(){ Vector3 mousePos =...

Как разрезать спрайт?
У меня есть спрайт https://www.freepng.ru/png-utkalw/download.html. Но мне надо разрезать его на...

Как создать спрайт
Задача создать рандомно из 20 спрайтов , обьекты на поле canvas? буду благодарен вот что ...

Как зеркально отразить этот алгоритм?
procedure TLine.Draw(Canvas: TCanvas); var Point : TPoint; I, dX, dY, Y, X: Integer; ...

8
44 / 17 / 7
Регистрация: 19.09.2015
Сообщений: 55
27.07.2017, 21:30 2
http://answers.unity3d.com/que... ty-2d.html
0
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
28.07.2017, 06:25 3
Тут два варианта: либо на SpriteRenderer использовать flipX, либо изменять transform.localScale по x на отрицательное значение. А проверять - сравнивать позицию мыши - если позиция меньше позиции игрока разворачивать спрайт.
0
1 / 1 / 1
Регистрация: 22.05.2017
Сообщений: 35
28.07.2017, 11:19  [ТС] 4
А как будет выглядeть со SpriteRenderer? Я просто только начал изучать юнити

Добавлено через 5 минут
там добавить две переменные типа Sprite, типо левый и правый спрайт, а дальше как?
0
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
28.07.2017, 17:11 5
Нет. не два спрайта. У SpriteRenderer есть поле flipx типа bool. Емеет два значение true и false. Если true спрайт будет отражен зеркально. Если false как обычно.
0
1 / 1 / 1
Регистрация: 22.05.2017
Сообщений: 35
14.09.2017, 21:49  [ТС] 6
Цитата Сообщение от Prog_maker Посмотреть сообщение
Тут два варианта: либо на SpriteRenderer использовать flipX, либо изменять transform.localScale по x на отрицательное значение. А проверять - сравнивать позицию мыши - если позиция меньше позиции игрока разворачивать спрайт.
__________________
можно по подробнее? Как например сравнить позицию мыши?

Добавлено через 26 минут
Цитата Сообщение от Prog_maker Посмотреть сообщение
Тут два варианта: либо на SpriteRenderer использовать flipX, либо изменять transform.localScale по x на отрицательное значение. А проверять - сравнивать позицию мыши - если позиция меньше позиции игрока разворачивать спрайт.
Тоесть я понимаю что мне нужно смотреть если вектор мыши уменьшается то гг разворачиваю налево, а если увеличивается то гг развернуть направо. Как это в скрипте записать?
0
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
17.09.2017, 20:42 7
PokerV,
Цитата Сообщение от PokerV Посмотреть сообщение
можно по подробнее? Как например сравнить позицию мыши?
Куда подробнее то? Я так понял, Вы хотите за счет форума написать игру? Все равно не выйдет. Почитайте книги еще раз Вам говорю...

Как-то так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using UnityEngine;
using System.Collections;
 
public class RotateObjectScript : MonoBehaviour 
{
    private SpriteRenderer  spriteRenderer  = null;
    private Transform       objectTransform = null;
    void Awake () 
    {
        objectTransform     =   this.transform;
        spriteRenderer      =   GetComponent<SpriteRenderer>();
    }
 
    void Update () 
    {
        Vector2 mousePos    =   Camera.main.ScreenToWorldPoint( Input.mousePosition );
        if( mousePos.x < objectTransform.position.x )
            spriteRenderer.flipX = true;
        else
            spriteRenderer.flipX = false;
    }
}
1
1 / 1 / 1
Регистрация: 22.05.2017
Сообщений: 35
17.09.2017, 21:42  [ТС] 8
Цитата Сообщение от Bretbas Посмотреть сообщение
Я так понял, Вы хотите за счет форума написать игру? Все равно не выйдет. Почитайте книги еще раз Вам говорю...
Спасибо вам огромное вы меня очень очень выручили, нет вы меня не правильно поняли, я не хочу написать игру за счет форума, я сюда просто обратился за помощью, я ничего подобного в мануалах не нашел. Еще раз вам спасибо огромное.
И на последок: какие книги посоветуете почитать?
Я не ленив и за радость почитаю.
0
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
18.09.2017, 08:13 9
PokerV,
Цитата Сообщение от PokerV Посмотреть сообщение
И на последок: какие книги посоветуете почитать?
По программированию в общем. Возьмите за изучение C# к примеру. Скачайте книги, к примеру Андрю Троелсена. Прочитайте с умом, начните практиковаться.
Чтобы разрабатывать игры, нужно как минимум еще знать хорошо линейную алгебру, так как ее применение в GameDev'е очень велико
0
18.09.2017, 08:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2017, 08:13
Помогаю со студенческими работами здесь

Зеркально отразить массив
Помогите пожалуйста. Нужно зеркально отразить двухмерный квадратный массив массив, относительно...

Отразить зеркально число
написать программу, позволяющую найти зеркальное число, того, которое введёт пользователь в вижуал...

Зеркально отразить изображение
В Python. В файле image.jpg лежит изображение с одинаковой шириной и высотой. Зеркально отразите...

Зеркально отразить одномерный массив
Есть массив (псевдо-динамический) setlocale(0, &quot;&quot;); const int ArrayMAX = 100;// Константа...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru