Ejemplo n.º 1
0
 public static EaseType GetType(EaseClass ec, EaseDir dir)
 {
     switch (ec)
     {
     case EaseClass.Linear:
     case EaseClass.Spring:
         dir = EaseDir.In;    //No dir
         break;
     }
     return((EaseType)((int)ec << Const.DirCount | (int)dir));
 }
Ejemplo n.º 2
0
        public static Ease.UCL_Ease Create(EaseClass ease)
        {
            switch (ease)
            {
            ///*
            case EaseClass.Linear: return(new Ease.Linear());

            case EaseClass.Spring: return(new Ease.Spring());

            case EaseClass.Bounce: return(new Ease.Bounce());

            case EaseClass.Elastic: return(new Ease.Elastic());

            case EaseClass.Sin: return(new Ease.Sin());

            case EaseClass.Quad: return(new Ease.Quad());

            case EaseClass.Cubic: return(new Ease.Cubic());

            case EaseClass.Quart: return(new Ease.Quart());

            case EaseClass.Quint: return(new Ease.Quint());

            case EaseClass.Expo: return(new Ease.Expo());

            case EaseClass.Circ: return(new Ease.Circ());

            //*/
            default:
                //Debug.LogWarning("Ease:" + ease.ToString());
                Type type = Type.GetType("UCL.TweenLib.Ease." + ease.ToString());
                var  e    = Activator.CreateInstance(type) as Ease.UCL_Ease;
                if (e != null)
                {
                    return(e);
                }
                return(new Ease.UCL_Ease());
            }

            /*
             * https://stackoverflow.com/questions/493490/converting-a-string-to-a-class-name
             * Type elementType = Type.GetType("FullyQualifiedName.Of.Customer");
             * Type listType = typeof(List<>).MakeGenericType(new Type[] { elementType });
             *
             * object list = Activator.CreateInstance(listType);
             */
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Use Common UCL_Ease if you don't need to modified Ease
        /// </summary>
        /// <param name="ease"></param>
        /// <returns></returns>
        public static Ease.UCL_Ease Get(EaseClass ease, EaseDir dir = EaseDir.In)
        {
            lock (m_EaseDic) {
                if (!m_EaseDic.ContainsKey(ease))
                {
                    Dictionary <EaseDir, Ease.UCL_Ease> ease_dic = new Dictionary <EaseDir, Ease.UCL_Ease>();

                    foreach (EaseDir e_dir in Enum.GetValues(typeof(EaseDir)))
                    {
                        ease_dic.Add(e_dir, Create(ease).SetDir(e_dir));
                    }
                    m_EaseDic[ease] = ease_dic;//Create(ease);
                }
            }

            return(m_EaseDic[ease][dir]);
        }
Ejemplo n.º 4
0
 virtual public UCL_Tweener SetEase(EaseClass ease, EaseDir dir)
 {
     return(SetEase(EaseCreator.Get(ease, dir)));
 }