Подвижная картинка, плавающая за мышкой

Программирование на Юнити.

Подвижная картинка, плавающая за мышкой

Сообщение ВерховныйНоуНейм 27 май 2017, 15:37

У меня вопрос...
Можно ли сделать плавное передвижение заднего фона за мышкой?
В середине скорость фона была например 10, а ближе к границам плавно уменьшалась...
Я сделал мудрёную систему векторов, но она дергается, лагает и т.д.
Синтаксис:
Используется csharp
public class bgmenu : MonoBehaviour {

        public Vector2 mouse;
        public GameObject bgobj;
        public Vector2 mstart;
        public bool u;
        public bool d;
        public bool l;
        public bool r;
        public float bgx;
        public float bgy;
        public bool use;
        public Vector2 bgs;
        public float bgsx;
        public float bgsy;

        void Start ()
        {
                bgs = bgobj.transform.position;
                u = false;
                d = false;
                l = false;
                r = false;
                mstart = Input.mousePosition;
                bgsx = bgs.x;
                bgsy = bgs.y;
                mstart.x = Screen.width / 2;
                mstart.y = Screen.height / 2;
        }

        void Update ()
        {
                mstart.x = Screen.width / 2;
                mstart.y = Screen.height / 2;
                bgx = bgobj.transform.position.x;
                bgy = bgobj.transform.position.y;
                mouse = Input.mousePosition;
                if (mouse.x > mstart.x) {
                        r = true;
                        l = false;
                        if (mouse.y > mstart.y) {
                                u = true;
                                d = false;
                        }
                        if (mouse.y < mstart.y) {
                                d = true;
                                u = false;
                        }
                }
                //5 and 211,697
                if (bgx < 5.04f) {
                        if (bgx > 4.947f) {
                                if (r == true) {
                                        bgobj.transform.Translate (new Vector3 (+0.0001f, 0, 0));
                                        if (u == true) {
                                                bgobj.transform.Translate (new Vector3 (0, +0.0001f, 0));
                                        }
                                        if (d == true) {
                                                bgobj.transform.Translate (new Vector3 (0, -0.0001f, 0));
                                        }
                                }
                        }
                }
                //5 and 211,697
                if (bgy < 211.840f) {
                        if (bgy > 211.443f) {
                                if (l == true) {
                                        bgobj.transform.Translate (new Vector3 (-0.0001f, 0, 0));
                                        if (u == true) {
                                                bgobj.transform.Translate (new Vector3 (0, +0.0001f, 0));
                                        }
                                        if (d == true) {
                                                bgobj.transform.Translate (new Vector3 (0, -0.0001f, 0));
                                        }
                                }
                        }
                }
                //5 and 211.697
                //5.04 and 211.840
                //4.95 and 211.434
                if (r == true) {
                        if (d != true) {
                                if (bgx > 5.037f) {
                                        bgobj.transform.Translate (new Vector3 (-0.0001f, 0, 0));

                                }
                        }
                }
       

                if (l == true) {
                        if (bgx < 4.9945f) {
                                bgobj.transform.Translate (new Vector3 (+0.0001f, 0, 0));

                        }
                }
               
                if (d == true) {
                        if (r != true) {
                                if (bgy > 211.837f) {
                                        bgobj.transform.Translate (new Vector3 (0, -0.0001f, 0));

                                }
                        }
                }
       
                if (u == true) {
                        if (l != true) {
                                if (bgy < 211.442f) {
                                        bgobj.transform.Translate (new Vector3 (0, +0.0001f, 0));

                                }
                        }
                }
                //5 and 211,697
                if (mouse.x < mstart.x) {
                        l = true;
                        r = false;
                        if (mouse.y > mstart.y) {
                                u = true;
                                d = false;
                        }
                        if (mouse.y < mstart.y) {
                                d = true;
                                u = false;
                        }
                }
                if (bgx == bgsx) {
                        if (bgy == bgsy) {
                                use = true;
                        }
                }
                if (bgy < 211.442f) {
                        bgobj.transform.Translate (0, +0.0001f, 0);
                }
                if (bgy > 211.843f) {
                        bgobj.transform.Translate (0, -0.0001f, 0);
                }
        }
}

она определяет в какой стороне мышка от центра, и двигает картинку векторами.
Если выходит за границы, запускает вектор, который отнимает такое же число, что и прибавляется.
Изображение
Аватара пользователя
ВерховныйНоуНейм
UNIт
 
Сообщения: 68
Зарегистрирован: 25 фев 2017, 19:56

Re: Подвижная картинка, плавающая за мышкой

Сообщение Cr0c 27 май 2017, 19:42

Надо чтобы фон смещался за мышкой, но нелинейно? Или чтобы постоянно скроллился? Камера неподвижна?
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Подвижная картинка, плавающая за мышкой

Сообщение samana 28 май 2017, 08:31

Или границы фона всегда должны подъезжать к границе экрана, когда курсор там же?
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Подвижная картинка, плавающая за мышкой

Сообщение ВерховныйНоуНейм 28 май 2017, 14:12

Нужно чтобы скролился по [x] и [y] одновременно и границы картинки не выезжали за границы камеры.
то-есть что-бы не было видно что за картинкой
Изображение
Аватара пользователя
ВерховныйНоуНейм
UNIт
 
Сообщения: 68
Зарегистрирован: 25 фев 2017, 19:56

Re: Подвижная картинка, плавающая за мышкой

Сообщение ВерховныйНоуНейм 01 июн 2017, 10:49

похоже ответа не последует...
Изображение
Аватара пользователя
ВерховныйНоуНейм
UNIт
 
Сообщения: 68
Зарегистрирован: 25 фев 2017, 19:56


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 7