Ejemplo n.º 1
0
        public void OnDrag(PointerEventData eventData)
        {
            Vector2 delta = eventData.delta;
            Vector2 dir   = Quaternion.Euler(0, 0, m_dir) * Vector3.right;
            Vector2 p     = Util.Project(delta, dir);
            //Debuger.LogError("方向:{0}", Quaternion.Euler(0, 0, m_dir) * Vector3.right);
            //Debug.DrawRay(transform.position,Quaternion.Euler(0, 0, m_dir) * Vector3.right,Color.red,5);
            float add = p.magnitude / m_dirSize;

            if (Vector2.Dot(dir, p) < 0)//加还是减
            {
                add = -add;
            }

            int iLast = Mathf.FloorToInt(m_lastFactor);

            m_lastFactor += add;
            if (!m_loop)
            {
                m_lastFactor = Mathf.Clamp01(m_lastFactor);
            }
            int iCur = Mathf.FloorToInt(m_lastFactor);

            if (iCur != iLast && m_loop)
            {
                if (m_onDrag != null)
                {
                    m_onDrag(iCur);
                }
                //Debuger.Log("滚到;{0}", iCur);
            }


            m_handle.SetFactor(m_lastFactor - iCur, true);
        }
Ejemplo n.º 2
0
        public void SetFactor(float factor)
        {
            if (m_handle != null)
            {
                m_handle.SetFactor(Mathf.Clamp01(factor));
            }

            OnSetFactor(factor);
        }
Ejemplo n.º 3
0
 static int SetFactor(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 3);
         UI.Handle obj  = (UI.Handle)ToLua.CheckObject(L, 1, typeof(UI.Handle));
         float     arg0 = (float)LuaDLL.luaL_checknumber(L, 2);
         bool      arg1 = LuaDLL.luaL_checkboolean(L, 3);
         obj.SetFactor(arg0, arg1);
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }