Страница 1 из 1

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

СообщениеДобавлено: 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);
                }
        }
}

она определяет в какой стороне мышка от центра, и двигает картинку векторами.
Если выходит за границы, запускает вектор, который отнимает такое же число, что и прибавляется.

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

СообщениеДобавлено: 27 май 2017, 19:42
Cr0c
Надо чтобы фон смещался за мышкой, но нелинейно? Или чтобы постоянно скроллился? Камера неподвижна?

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

СообщениеДобавлено: 28 май 2017, 08:31
samana
Или границы фона всегда должны подъезжать к границе экрана, когда курсор там же?

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

СообщениеДобавлено: 28 май 2017, 14:12
ВерховныйНоуНейм
Нужно чтобы скролился по [x] и [y] одновременно и границы картинки не выезжали за границы камеры.
то-есть что-бы не было видно что за картинкой

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

СообщениеДобавлено: 01 июн 2017, 10:49
ВерховныйНоуНейм
похоже ответа не последует...