コード例 #1
0
ファイル: Decoder.cs プロジェクト: QuteSaltyFish/Re-AB
        public static void DecodeInto(this string data, RectTransform tf)
        {
            var cody = new StdDecoder(data);

            foreach (var tag in cody)
            {
                var d = cody.GetData();
                switch (tag)
                {
                case "tfBase": d.DecodeInto(tf.transform); break;

                case "aPos": tf.anchoredPosition = d.ToVector2(); break;

                case "aPos3D": tf.anchoredPosition3D = d.ToVector3(); break;

                case "aMax": tf.anchorMax = d.ToVector2(); break;

                case "aMin": tf.anchorMin = d.ToVector2(); break;

                case "ofMax": tf.offsetMax = d.ToVector2(); break;

                case "ofMin": tf.offsetMin = d.ToVector2(); break;

                case "pvt": tf.pivot = d.ToVector2(); break;

                case "deSize": tf.sizeDelta = d.ToVector2(); break;
                }
            }
        }
コード例 #2
0
ファイル: Decoder.cs プロジェクト: QuteSaltyFish/Re-AB
        public static void DecodeInto(this string data, Transform tf)
        {
            var  cody  = new StdDecoder(data);
            bool local = false;

            foreach (var tag in cody)
            {
                var d = cody.GetData();
                switch (tag)
                {
                case "loc": local = d.ToBool(); break;

                case "pos": if (local)
                    {
                        tf.localPosition = d.ToVector3();
                    }
                    else
                    {
                        tf.position = d.ToVector3();
                    } break;

                case "size": tf.localScale = d.ToVector3(); break;

                case "rot": if (local)
                    {
                        tf.localRotation = d.ToQuaternion();
                    }
                    else
                    {
                        tf.rotation = d.ToQuaternion();
                    } break;
                }
            }
        }
コード例 #3
0
ファイル: Decoder.cs プロジェクト: QuteSaltyFish/Re-AB
        public static Color ToColor(this string data)
        {
            var   cody = new StdDecoder(data);
            Color c    = new Color();

            foreach (var tag in cody)
            {
                var d = cody.GetData();
                switch (tag)
                {
                case "r": c.r = d.ToFloat(); break;

                case "g": c.g = d.ToFloat(); break;

                case "b": c.b = d.ToFloat(); break;

                case "a": c.a = d.ToFloat(); break;

                default:
                    cody.GetData(); break;
                }
            }

            return(c);
        }
コード例 #4
0
ファイル: Decoder.cs プロジェクト: QuteSaltyFish/Re-AB
        public static void DecodeInto(this string data, out BoneWeight b)
        {
            var cody = new StdDecoder(data);

            b = new BoneWeight();

            foreach (var tag in cody)
            {
                var d = cody.GetData();
                switch (tag)
                {
                case "i0": b.boneIndex0 = d.ToInt(); break;

                case "w0": b.weight0 = d.ToFloat(); break;

                case "i1": b.boneIndex1 = d.ToInt(); break;

                case "w1": b.weight1 = d.ToFloat(); break;

                case "i2": b.boneIndex2 = d.ToInt(); break;

                case "w2": b.weight2 = d.ToFloat(); break;

                case "i3": b.boneIndex3 = d.ToInt(); break;

                case "w3": b.weight3 = d.ToFloat(); break;
                }
            }
        }
コード例 #5
0
ファイル: Decoder.cs プロジェクト: QuteSaltyFish/Re-AB
        public static void DecodeInto(this string data, out Dictionary <int, string> dic)
        {
            var cody = new StdDecoder(data);

            dic = new Dictionary <int, string>();

            while (cody.GotData)
            {
                dic.Add(cody.GetTag().ToInt(), cody.GetData());
            }
        }
コード例 #6
0
ファイル: Decoder.cs プロジェクト: QuteSaltyFish/Re-AB
        public static List <int> DecodeInto(this string data, out List <int> l)
        {
            l = new List <int>();

            StdDecoder cody = new StdDecoder(data);

            foreach (var tag in cody)
            {
                l.Add(cody.GetData().ToInt());
            }

            return(l);
        }
コード例 #7
0
ファイル: Decoder.cs プロジェクト: QuteSaltyFish/Re-AB
        // ToListOfSTD
        public static bool TryDecodeInto <T>(this string data, List <T> val)
        {
            if (val != null)
            {
                var cody = new StdDecoder(data);

                while (cody.GotData)
                {
                    var ind = cody.GetTag().ToIntFromTextSafe(-1);
                    cody.GetData().TryDecodeInto(val.TryGet(ind));
                }
                return(true);
            }
            return(false);
        }
コード例 #8
0
ファイル: Decoder.cs プロジェクト: QuteSaltyFish/Re-AB
        public static void DecodeInto(this string data, out Matrix4x4 m)
        {
            var cody = new StdDecoder(data);

            m = new Matrix4x4();

            foreach (var tag in cody)
            {
                var d = cody.GetData();
                switch (tag)
                {
                case "00": m.m00 = d.ToFloat(); break;

                case "01": m.m01 = d.ToFloat(); break;

                case "02": m.m02 = d.ToFloat(); break;

                case "03": m.m03 = d.ToFloat(); break;

                case "10": m.m10 = d.ToFloat(); break;

                case "11": m.m11 = d.ToFloat(); break;

                case "12": m.m12 = d.ToFloat(); break;

                case "13": m.m13 = d.ToFloat(); break;

                case "20": m.m20 = d.ToFloat(); break;

                case "21": m.m21 = d.ToFloat(); break;

                case "22": m.m22 = d.ToFloat(); break;

                case "23": m.m23 = d.ToFloat(); break;

                case "30": m.m30 = d.ToFloat(); break;

                case "31": m.m31 = d.ToFloat(); break;

                case "32": m.m32 = d.ToFloat(); break;

                case "33": m.m33 = d.ToFloat(); break;

                default: Debug.Log("Uncnown component: " + tag); break;
                }
            }
            // return m;
        }
コード例 #9
0
ファイル: Decoder.cs プロジェクト: QuteSaltyFish/Re-AB
        public static List <List <T> > DecodeInto <T>(this string data, out List <List <T> > l) where T : ISTD, new()
        {
            l = new List <List <T> >();

            var cody = new StdDecoder(data);

            while (cody.GotData)
            {
                cody.GetTag();
                List <T> el;
                cody.GetData().DecodeInto(out el);
                l.Add(el);
            }

            return(l);
        }
コード例 #10
0
ファイル: Decoder.cs プロジェクト: QuteSaltyFish/Re-AB
        public static List <T> DecodeInto <T>(this string data, out List <T> l) where T : ISTD, new()
        {
            StdDecoder cody = new StdDecoder(data);

            l = new List <T>();

            List <Type> tps = typeof(T).TryGetDerrivedClasses();

            foreach (var tag in cody)
            {
                var d = cody.GetData();

                var isNull = tag == StdEncoder.nullTag;
                if (isNull)
                {
                    l.Add(default(T));
                }
                else
                {
                    if (tps != null)
                    {
                        var type = tps.TryGet(tag.ToIntFromTextSafe(-1));
                        if (type == null)
                        {
                            type = tps[0];
                            #if UNITY_EDITOR
                            Debug.Log("Couldn't decode class no: " + tag + " for " + typeof(T).ToString());
                            #endif
                        }

                        if (type != null)
                        {
                            l.Add(d.DecodeInto <T>(type));
                        }
                    }
                    else
                    {
                        l.Add(d.DecodeInto <T>());
                    }
                }
            }


            return(l);
        }
コード例 #11
0
ファイル: Decoder.cs プロジェクト: QuteSaltyFish/Re-AB
        public static Rect ToRect(this string data)
        {
            StdDecoder cody = new StdDecoder(data);

            Rect rect = new Rect();

            foreach (var tag in cody)
            {
                var d = cody.GetData();
                switch (tag)
                {
                case "pos": rect.position = d.ToVector2(); break;

                case "size": rect.size = d.ToVector2(); break;
                }
            }
            return(rect);
        }
コード例 #12
0
ファイル: Decoder.cs プロジェクト: QuteSaltyFish/Re-AB
        public static Vector2 ToVector2(this string data)
        {
            StdDecoder cody = new StdDecoder(data);

            Vector2 v2 = new Vector3();

            foreach (var tag in cody)
            {
                var d = cody.GetData();
                switch (tag)
                {
                case "x": v2.x = d.ToFloat(); break;

                case "y": v2.y = d.ToFloat(); break;
                }
            }
            return(v2);
        }
コード例 #13
0
ファイル: Decoder.cs プロジェクト: QuteSaltyFish/Re-AB
        public static Vector4 ToVector4(this string data)
        {
            StdDecoder cody = new StdDecoder(data);

            Vector4 v4 = new Vector4();

            foreach (var tag in cody)
            {
                var d = cody.GetData();
                switch (tag)
                {
                case "x": v4.x = d.ToFloat(); break;

                case "y": v4.y = d.ToFloat(); break;

                case "z": v4.z = d.ToFloat(); break;

                case "w": v4.w = d.ToFloat(); break;

                default: Debug.Log("Uncnown component: " + tag); break;
                }
            }
            return(v4);
        }
コード例 #14
0
ファイル: Decoder.cs プロジェクト: QuteSaltyFish/Re-AB
        public static Quaternion ToQuaternion(this string data)
        {
            StdDecoder cody = new StdDecoder(data);

            Quaternion q = new Quaternion();

            foreach (var tag in cody)
            {
                var d = cody.GetData();
                switch (tag)
                {
                case "x": q.x = d.ToFloat(); break;

                case "y": q.y = d.ToFloat(); break;

                case "z": q.z = d.ToFloat(); break;

                case "w": q.w = d.ToFloat(); break;

                default: Debug.Log("Uncnown component: " + cody.GetType()); break;
                }
            }
            return(q);
        }