public void WriteToJson(IResMgr resmgr, GameObject node, Component component, MyJson.JsonNode_Object json)
        {
            SkinnedMeshRenderer ic = component as SkinnedMeshRenderer;
            //json["type"] = new MyJson.JsonNode_ValueString(this.comptype.Name.ToLower());//必须的一行
            //放到外面去了

            //材质
            MyJson.JsonNode_Array mats = new MyJson.JsonNode_Array();

            json["mats"] = mats;

            foreach (var m in ic.sharedMaterials)
            {
                string hash = resmgr.SaveMat(m);
                mats.Add(new MyJson.JsonNode_ValueString(hash));
            }

            //bounds
            json["center"] = new MyJson.JsonNode_ValueString(StringHelper.ToString(ic.localBounds.center));
            json["size"] = new MyJson.JsonNode_ValueString(StringHelper.ToString(ic.localBounds.size));

            //mesh
            json["mesh"] = new MyJson.JsonNode_ValueString(resmgr.SaveMesh(ic.sharedMesh));

            json["rootboneobj"] = new MyJson.JsonNode_ValueNumber(ic.rootBone.gameObject.GetInstanceID());
            MyJson.JsonNode_Array bones = new MyJson.JsonNode_Array();
            foreach (var b in ic.bones)
            {
                bones.Add(new MyJson.JsonNode_ValueNumber(b.gameObject.GetInstanceID()));
            }
            json["boneobjs"] = bones;
            ic.rootBone.GetInstanceID();
        }
Example #2
0
        public void SaveNode(GameObject _object)
        {
            bufs   = new Dictionary <string, byte[]>();
            resmgr = new ResMgr(this);



            if (debug)
            {
                Debug.Log("SaveNode:" + _object);
            }

            MyJson.JsonNode_Object _json = new MyJson.JsonNode_Object();
            Obj2Json(_object, _json);//扫描转换


            //将树也加入bufs
            StringBuilder sb = new StringBuilder();

            _json.ConvertToStringWithFormat(sb, 4);
            byte[] bs = System.Text.Encoding.UTF8.GetBytes(sb.ToString());

            string sha1 = ResLibTool.ComputeHashString(bs);

            bufs[sha1 + ".jsontree.txt"] = bs;
        }
Example #3
0
        public void WriteToJson(IResMgr resmgr, GameObject node, Component component, MyJson.JsonNode_Object json)
        {
            SkinnedMeshRenderer ic = component as SkinnedMeshRenderer;

            //json["type"] = new MyJson.JsonNode_ValueString(this.comptype.Name.ToLower());//必须的一行
            //放到外面去了

            //材质
            MyJson.JsonNode_Array mats = new MyJson.JsonNode_Array();

            json["mats"] = mats;

            foreach (var m in ic.sharedMaterials)
            {
                string hash = resmgr.SaveMat(m);
                mats.Add(new MyJson.JsonNode_ValueString(hash));
            }

            //bounds
            json["center"] = new MyJson.JsonNode_ValueString(StringHelper.ToString(ic.localBounds.center));
            json["size"]   = new MyJson.JsonNode_ValueString(StringHelper.ToString(ic.localBounds.size));

            //mesh
            json["mesh"] = new MyJson.JsonNode_ValueString(resmgr.SaveMesh(ic.sharedMesh));

            json["rootboneobj"] = new MyJson.JsonNode_ValueNumber(ic.rootBone.gameObject.GetInstanceID());
            MyJson.JsonNode_Array bones = new MyJson.JsonNode_Array();
            foreach (var b in ic.bones)
            {
                bones.Add(new MyJson.JsonNode_ValueNumber(b.gameObject.GetInstanceID()));
            }
            json["boneobjs"] = bones;
            ic.rootBone.GetInstanceID();
        }
        public Component ReadFromJson(IResMgr resmgr, GameObject node, MyJson.JsonNode_Object json, DelayProcess dp)
        {
            MeshFilter c = node.GetComponent(comptype) as MeshFilter;
            if (c == null)//这就可能了
                c = node.AddComponent<MeshFilter>();

          
            var mesh = resmgr.GetMesh(json["mesh"].AsString());
            c.mesh = mesh;
            return c;
        }
        public void WriteToJson(IResMgr resmgr, GameObject node, Component component, MyJson.JsonNode_Object json)
        {
            BoxCollider ic = component as BoxCollider;

            //json["type"] = new MyJson.JsonNode_ValueString(this.comptype.Name.ToLower());//必须的一行
            //放到外面去了


            json["center"] = new MyJson.JsonNode_ValueString(StringHelper.ToString(ic.center));
            json["size"]   = new MyJson.JsonNode_ValueString(StringHelper.ToString(ic.size));
        }
        public void WriteToJson(IResMgr resmgr, GameObject node, Component component, MyJson.JsonNode_Object json)
        {
            BoxCollider ic = component as BoxCollider;
            //json["type"] = new MyJson.JsonNode_ValueString(this.comptype.Name.ToLower());//必须的一行
            //放到外面去了


            json["center"] = new MyJson.JsonNode_ValueString(StringHelper.ToString(ic.center));
            json["size"] = new MyJson.JsonNode_ValueString(StringHelper.ToString(ic.size));

        }
Example #7
0
        public Component ReadFromJson(IResMgr resmgr, GameObject node, MyJson.JsonNode_Object json, DelayProcess dp)
        {
            SkinnedMeshRenderer c = node.GetComponent(comptype) as SkinnedMeshRenderer;

            if (c == null)//这就可能了
            {
                c = node.AddComponent <SkinnedMeshRenderer>();
            }

            //mats
            var mats = json["mats"].AsList();

            Material[] rmats = new Material[mats.Count];
            for (int i = 0; i < mats.Count; i++)
            {
                string hashname = mats[i].AsString();
                rmats[i] = resmgr.GetMat(hashname);
            }
            c.materials = rmats;
            //bound
            var center = StringHelper.ToVector3(json["center"].AsString());
            var size   = StringHelper.ToVector3(json["size"].AsString());

            c.localBounds = new Bounds(center, size);

            //mesh
            var mesh = resmgr.GetMesh(json["mesh"].AsString());

            c.sharedMesh = mesh;

            //延迟恢复
            if (json.ContainsKey("rootboneobj"))
            {
                dp.delayCall += () =>
                {
                    c.rootBone = dp.mapObjs[json["rootboneobj"].AsInt()].transform;
                };
            }
            if (json.ContainsKey("boneobjs"))
            {
                dp.delayCall += () =>
                {
                    var array = json["boneobjs"] as MyJson.JsonNode_Array;
                    List <Transform> bones = new List <Transform>();
                    foreach (var b in array)
                    {
                        bones.Add(dp.mapObjs[b.AsInt()].transform);
                    }
                    c.bones = bones.ToArray();
                };
            }
            return(c);
        }
        public void WriteToJson(IResMgr resmgr, GameObject node, Component component, MyJson.JsonNode_Object json)
        {
            Transform ic = component as Transform;
            //json["type"] = new MyJson.JsonNode_ValueString(this.comptype.Name.ToLower());//必须的一行
            //放到外面去了


            json["transmove"] = new MyJson.JsonNode_ValueString(StringHelper.ToString(ic.localPosition));
            json["transquat"] = new MyJson.JsonNode_ValueString(StringHelper.ToString(ic.localRotation));
            json["transscale"] = new MyJson.JsonNode_ValueString(StringHelper.ToString(ic.localScale));

        }
Example #9
0
        public void WriteToJson(IResMgr resmgr, GameObject node, Component component, MyJson.JsonNode_Object json)
        {
            Transform ic = component as Transform;

            //json["type"] = new MyJson.JsonNode_ValueString(this.comptype.Name.ToLower());//必须的一行
            //放到外面去了


            json["transmove"]  = new MyJson.JsonNode_ValueString(StringHelper.ToString(ic.localPosition));
            json["transquat"]  = new MyJson.JsonNode_ValueString(StringHelper.ToString(ic.localRotation));
            json["transscale"] = new MyJson.JsonNode_ValueString(StringHelper.ToString(ic.localScale));
        }
        public void WriteToJson(IResMgr resmgr, GameObject node, Component component, MyJson.JsonNode_Object json)
        {
            MeshFilter ic = component as MeshFilter;

            //json["type"] = new MyJson.JsonNode_ValueString(this.comptype.Name.ToLower());//必须的一行
            //放到外面去了
#if UNITY_EDITOR
            json["mesh"] = new MyJson.JsonNode_ValueString(resmgr.SaveMesh(ic.sharedMesh));
#else
            json["mesh"] = new MyJson.JsonNode_ValueString(resmgr.SaveMesh(ic.mesh));
#endif
        }
        public void WriteToJson(IResMgr resmgr, GameObject node, Component component, MyJson.JsonNode_Object json)
        {
            MeshFilter ic = component as MeshFilter;
            //json["type"] = new MyJson.JsonNode_ValueString(this.comptype.Name.ToLower());//必须的一行
            //放到外面去了
#if UNITY_EDITOR
            json["mesh"] = new MyJson.JsonNode_ValueString(resmgr.SaveMesh(ic.sharedMesh));
#else
            json["mesh"] = new MyJson.JsonNode_ValueString(resmgr.SaveMesh(ic.mesh));
#endif

        }
Example #12
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="path">Path.</param>
        static public void Load(string root = "")
        {
            if (root != "")
            {
                resMgr = new AssetBundleMgr();
            }
            else
            {
#if UNITY_EDITOR
                resMgr = new DevResourceMgr();
#endif
            }
        }
Example #13
0
        public void WriteToJson(IResMgr resmgr, GameObject node, Component component, MyJson.JsonNode_Object json)
        {
            FB.PosePlus.AniPlayer ic = component as FB.PosePlus.AniPlayer;

            MyJson.JsonNode_Array anis = new MyJson.JsonNode_Array();

            json["clips"] = anis;
            foreach (var m in ic.clips)
            {
                string hash = resmgr.SaveAniClip(m);
                anis.Add(new MyJson.JsonNode_ValueString(hash));
            }
        }
        public Component ReadFromJson(IResMgr resmgr, GameObject node, MyJson.JsonNode_Object json,DelayProcess dp)
        {
            BoxCollider c = node.GetComponent(comptype) as BoxCollider;
            if (c == null)
                c = node.AddComponent<BoxCollider>();
            Debug.Log(c);
            Debug.Log("tag=" + json);
            var center = StringHelper.ToVector3(json["center"].AsString());
            var size = StringHelper.ToVector3(json["size"].AsString());

            c.center = center;
            c.size = size;
            return c;
        }
Example #15
0
        public void WriteToJson(IResMgr resmgr, Material mat, MyJson.JsonNode_Object json)
        {
            json["shaderName"] = new MyJson.JsonNode_ValueString(this.shaderName);
            if (jsonConfig.ContainsKey("params"))
            {
                foreach (var item in jsonConfig["params"].asDict())
                {
                    //Debug.Log(item.Value);
                    string type = item.Value.asDict()["type"].AsString();
                    string flag = item.Value.asDict()["flags"].AsString();
                    string name = item.Value.asDict()["name"].AsString();
                    if (type == "Float" || type == "Range")
                    {
                        json[name] = new MyJson.JsonNode_ValueNumber(mat.GetFloat(name));
                    }
                    else if (type == "Vector")
                    {
                        json[name] = new MyJson.JsonNode_ValueString(StringHelper.ToString(mat.GetVector(name)));
                    }
                    else if (type == "Color")
                    {
                        json[name] = new MyJson.JsonNode_ValueString(StringHelper.ToString((Color32)mat.GetColor(name)));
                    }
                    else if (type == "Texture")
                    {
                        string texdim = item.Value.asDict()["texdim"].AsString();
                        var tex = mat.GetTexture(name);
                        if (tex != null)
                        {
                            if (texdim == "Tex2D")
                            {
                                string texname = resmgr.SaveTexture(tex as Texture2D);
                                json[name] = new MyJson.JsonNode_ValueString(texname);
                            }
                            else
                            {
                                throw new Exception("not support texdim:" + texdim);
                            }
                        }
                    }
                    else
                    {
                        throw new Exception("not support type:" + type);
                    }

                }
            }

        }
        public void WriteToJson(IResMgr resmgr, GameObject node, Component component, MyJson.JsonNode_Object json)
        {
            FB.PosePlus.AniPlayer ic = component as FB.PosePlus.AniPlayer;

            MyJson.JsonNode_Array anis = new MyJson.JsonNode_Array();

            json["clips"] = anis;
            foreach (var m in ic.clips)
            {
                string hash = resmgr.SaveAniClip(m);
                anis.Add(new MyJson.JsonNode_ValueString(hash));
            }


        }
        public Component ReadFromJson(IResMgr resmgr, GameObject node, MyJson.JsonNode_Object json, DelayProcess dp)
        {
            MeshFilter c = node.GetComponent(comptype) as MeshFilter;

            if (c == null)//这就可能了
            {
                c = node.AddComponent <MeshFilter>();
            }


            var mesh = resmgr.GetMesh(json["mesh"].AsString());

            c.mesh = mesh;
            return(c);
        }
 public Component ReadFromJson(IResMgr resmgr, GameObject node, MyJson.JsonNode_Object json, DelayProcess dp)
 {
     MeshRenderer c = node.GetComponent(comptype) as MeshRenderer;
     if (c == null)//这就可能了
         c = node.AddComponent<MeshRenderer>();
     var mats = json["mats"].AsList();
     Material[] rmats = new Material[mats.Count];
     for (int i = 0; i < mats.Count; i++)
     {
         string hashname = mats[i].AsString();
         rmats[i] = resmgr.GetMat(hashname);
     }
     c.materials = rmats;
     return c;
 }
 public Component ReadFromJson(IResMgr resmgr, GameObject node, MyJson.JsonNode_Object json, DelayProcess dp)
 {
     Transform c = node.GetComponent(comptype) as Transform;
     if (c == null)//这并不可能,只是例子
         c = node.AddComponent<Transform>();
     //Debug.Log(c);
     //Debug.Log("tag=" + json);
     var move = StringHelper.ToVector3(json["transmove"].AsString());
     var euler = StringHelper.ToQuaternion(json["transquat"].AsString());
     var scale = StringHelper.ToVector3(json["transscale"].AsString());
     c.localPosition = move;
     c.localScale = scale;
     c.localRotation = euler;
     return c;
 }
        public Component ReadFromJson(IResMgr resmgr, GameObject node, MyJson.JsonNode_Object json, DelayProcess dp)
        {
            SkinnedMeshRenderer c = node.GetComponent(comptype) as SkinnedMeshRenderer;
            if (c == null)//这就可能了
                c = node.AddComponent<SkinnedMeshRenderer>();

            //mats
            var mats = json["mats"].AsList();
            Material[] rmats = new Material[mats.Count];
            for (int i = 0; i < mats.Count; i++)
            {
                string hashname = mats[i].AsString();
                rmats[i] = resmgr.GetMat(hashname);
            }
            c.materials = rmats;
            //bound
            var center = StringHelper.ToVector3(json["center"].AsString());
            var size = StringHelper.ToVector3(json["size"].AsString());

            c.localBounds = new Bounds(center, size);

            //mesh
            var mesh = resmgr.GetMesh(json["mesh"].AsString());
            c.sharedMesh = mesh;

            //延迟恢复
            if (json.ContainsKey("rootboneobj"))
            {
                dp.delayCall += () =>
                {
                    c.rootBone = dp.mapObjs[json["rootboneobj"].AsInt()].transform;
                };
            }
            if (json.ContainsKey("boneobjs"))
            {
                dp.delayCall += () =>
                  {
                      var array = json["boneobjs"] as MyJson.JsonNode_Array;
                      List<Transform> bones = new List<Transform>();
                      foreach (var b in array)
                      {
                          bones.Add(dp.mapObjs[b.AsInt()].transform);
                      }
                      c.bones = bones.ToArray();
                  };
            }
            return c;
        }
        public Component ReadFromJson(IResMgr resmgr, GameObject node, MyJson.JsonNode_Object json, DelayProcess dp)
        {
            FB.PosePlus.AniPlayer c = node.GetComponent(comptype) as FB.PosePlus.AniPlayer;
            if (c == null)//这就可能了
                c = node.AddComponent<FB.PosePlus.AniPlayer>();

            var clips = json["clips"].AsList();
            c.clips = new List<FB.PosePlus.AniClip>();
            for (int i = 0; i < clips.Count; i++)
            {
                string hashname = clips[i].AsString();
                c.clips.Add(resmgr.GetAniClip(hashname));
            }
            
            return c;
        }
Example #22
0
 public void WriteToJson(IResMgr resmgr, Material mat, MyJson.JsonNode_Object json)
 {
     json["shaderName"] = new MyJson.JsonNode_ValueString(this.shaderName);
     if (jsonConfig.ContainsKey("params"))
     {
         foreach (var item in jsonConfig["params"].asDict())
         {
             //Debug.Log(item.Value);
             string type = item.Value.asDict()["type"].AsString();
             string flag = item.Value.asDict()["flags"].AsString();
             string name = item.Value.asDict()["name"].AsString();
             if (type == "Float" || type == "Range")
             {
                 json[name] = new MyJson.JsonNode_ValueNumber(mat.GetFloat(name));
             }
             else if (type == "Vector")
             {
                 json[name] = new MyJson.JsonNode_ValueString(StringHelper.ToString(mat.GetVector(name)));
             }
             else if (type == "Color")
             {
                 json[name] = new MyJson.JsonNode_ValueString(StringHelper.ToString((Color32)mat.GetColor(name)));
             }
             else if (type == "Texture")
             {
                 string texdim = item.Value.asDict()["texdim"].AsString();
                 var    tex    = mat.GetTexture(name);
                 if (tex != null)
                 {
                     if (texdim == "Tex2D")
                     {
                         string texname = resmgr.SaveTexture(tex as Texture2D);
                         json[name] = new MyJson.JsonNode_ValueString(texname);
                     }
                     else
                     {
                         throw new Exception("not support texdim:" + texdim);
                     }
                 }
             }
             else
             {
                 throw new Exception("not support type:" + type);
             }
         }
     }
 }
Example #23
0
    void Awake()
    {
        //
        DontDestroyOnLoad(this.gameObject);


        if (IsAssetBundleModel)
        {
            //实例化为ab加载管理
            ResMgr = mRousourcesMgr;
        }
        else
        {
            //实例化为封装系统实例化接口
            ResMgr = mAssetBundleMgr;
        }
    }
        public Component ReadFromJson(IResMgr resmgr, GameObject node, MyJson.JsonNode_Object json, DelayProcess dp)
        {
            BoxCollider c = node.GetComponent(comptype) as BoxCollider;

            if (c == null)
            {
                c = node.AddComponent <BoxCollider>();
            }
            Debug.Log(c);
            Debug.Log("tag=" + json);
            var center = StringHelper.ToVector3(json["center"].AsString());
            var size   = StringHelper.ToVector3(json["size"].AsString());

            c.center = center;
            c.size   = size;
            return(c);
        }
Example #25
0
        /// <summary>
        /// 初始化加载Assetbundle的环境
        /// 该接口,一般用于测试
        /// </summary>
        /// <param name="abModel"></param>
        /// <param name="callback"></param>
        static public void InitLoadAssetBundleEnv(string path, RuntimePlatform platform)
        {
            var key = ZString.Concat(path, "_", platform);

            if (!loaderCacheMap.TryGetValue(key, out var loder))
            {
                ResLoader = new AssetBundleMgrV2();
                ResLoader.Init(path, platform);
                loaderCacheMap[key] = ResLoader;
            }
            else
            {
                ResLoader = loder;
            }

            //初始化对象池
            InitObjectPools();
        }
Example #26
0
        public Component ReadFromJson(IResMgr resmgr, GameObject node, MyJson.JsonNode_Object json, DelayProcess dp)
        {
            MeshRenderer c = node.GetComponent(comptype) as MeshRenderer;

            if (c == null)//这就可能了
            {
                c = node.AddComponent <MeshRenderer>();
            }
            var mats = json["mats"].AsList();

            Material[] rmats = new Material[mats.Count];
            for (int i = 0; i < mats.Count; i++)
            {
                string hashname = mats[i].AsString();
                rmats[i] = resmgr.GetMat(hashname);
            }
            c.materials = rmats;
            return(c);
        }
Example #27
0
        public Component ReadFromJson(IResMgr resmgr, GameObject node, MyJson.JsonNode_Object json, DelayProcess dp)
        {
            FB.PosePlus.AniPlayer c = node.GetComponent(comptype) as FB.PosePlus.AniPlayer;
            if (c == null)//这就可能了
            {
                c = node.AddComponent <FB.PosePlus.AniPlayer>();
            }

            var clips = json["clips"].AsList();

            c.clips = new List <FB.PosePlus.AniClip>();
            for (int i = 0; i < clips.Count; i++)
            {
                string hashname = clips[i].AsString();
                c.clips.Add(resmgr.GetAniClip(hashname));
            }

            return(c);
        }
Example #28
0
        public Component ReadFromJson(IResMgr resmgr, GameObject node, MyJson.JsonNode_Object json, DelayProcess dp)
        {
            Transform c = node.GetComponent(comptype) as Transform;

            if (c == null)//这并不可能,只是例子
            {
                c = node.AddComponent <Transform>();
            }
            //Debug.Log(c);
            //Debug.Log("tag=" + json);
            var move  = StringHelper.ToVector3(json["transmove"].AsString());
            var euler = StringHelper.ToQuaternion(json["transquat"].AsString());
            var scale = StringHelper.ToVector3(json["transscale"].AsString());

            c.localPosition = move;
            c.localScale    = scale;
            c.localRotation = euler;
            return(c);
        }
Example #29
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="abModel"></param>
        /// <param name="callback"></param>
        static public void Init(AssetLoadPathType loadPathType)
        {
            BDebug.Log("【BResource】加载路径:" + loadPathType.ToString());
            if (loadPathType == AssetLoadPathType.Editor)
            {
#if UNITY_EDITOR //防止编译报错
                ResLoader = new DevResourceMgr();
                ResLoader.Init(null, RuntimePlatform.WindowsEditor);
#endif
            }
            else
            {
                var path = GameConfig.GetLoadPath(loadPathType);
                ResLoader = new AssetBundleMgrV2();
                ResLoader.Init(path, BApplication.RuntimePlatform);
            }

            //初始化对象池
            InitObjectPools();
        }
Example #30
0
        public GameObject GenNode()
        {
            resmgr = new ResMgr(this);
            string treefile = null;

            foreach (var b in bufs.Keys)
            {
                if (b.Contains(".jsontree.txt"))
                {
                    treefile = System.Text.Encoding.UTF8.GetString(this.bufs[b]);
                    break;
                }
            }
            MyJson.JsonNode_Object _json = MyJson.Parse(treefile) as MyJson.JsonNode_Object;

            _obj = new GameObject();
            DelayProcess dp = new DelayProcess();

            Json2Obj(_json, _obj, dp);
            dp.Do();
            return(_obj);
        }
Example #31
0
        public void WriteToJson(IResMgr resmgr, GameObject node, Component component, MyJson.JsonNode_Object json)
        {
            MeshRenderer ic = component as MeshRenderer;

            //json["type"] = new MyJson.JsonNode_ValueString(this.comptype.Name.ToLower());//必须的一行
            //放到外面去了

            MyJson.JsonNode_Array mats = new MyJson.JsonNode_Array();

            json["mats"] = mats;
#if UNITY_EDITOR
            foreach (var m in ic.sharedMaterials)
            {
                string hash = resmgr.SaveMat(m);
                mats.Add(new MyJson.JsonNode_ValueString(hash));
            }
#else
            foreach (var m in ic.materials)
            {
                string hash = resmgr.SaveMat(m);
                mats.Add(new MyJson.JsonNode_ValueString(hash));
            }
#endif
        }
        public void WriteToJson(IResMgr resmgr, GameObject node, Component component, MyJson.JsonNode_Object json)
        {
            MeshRenderer ic = component as MeshRenderer;
            //json["type"] = new MyJson.JsonNode_ValueString(this.comptype.Name.ToLower());//必须的一行
            //放到外面去了

            MyJson.JsonNode_Array mats = new MyJson.JsonNode_Array();

            json["mats"] = mats;
#if UNITY_EDITOR
            foreach (var m in ic.sharedMaterials)
            {
                string hash = resmgr.SaveMat(m);
                mats.Add(new MyJson.JsonNode_ValueString(hash));
            }
#else
            foreach (var m in ic.materials)
            {
                string hash = resmgr.SaveMat(m);
                mats.Add(new MyJson.JsonNode_ValueString(hash));
            }
#endif

        }
Example #33
0
        public GameObject GenNode()
        {
            resmgr = new ResMgr(this);
            string treefile = null;
            foreach (var b in bufs.Keys)
            {
                if (b.Contains(".jsontree.txt"))
                {
                    treefile = System.Text.Encoding.UTF8.GetString(this.bufs[b]);
                    break;
                }
            }
            MyJson.JsonNode_Object _json = MyJson.Parse(treefile) as MyJson.JsonNode_Object;

            _obj = new GameObject();
            DelayProcess dp = new DelayProcess();
            Json2Obj(_json, _obj, dp);
            dp.Do();
            return _obj;

        }
Example #34
0
        public void SaveNode(GameObject _object)
        {
            bufs = new Dictionary<string, byte[]>();
            resmgr = new ResMgr(this);



            if (debug)
                Debug.Log("SaveNode:" + _object);

            MyJson.JsonNode_Object _json = new MyJson.JsonNode_Object();
            Obj2Json(_object, _json);//扫描转换


            //将树也加入bufs
            StringBuilder sb = new StringBuilder();
            _json.ConvertToStringWithFormat(sb, 4);
            byte[] bs = System.Text.Encoding.UTF8.GetBytes(sb.ToString());

            string sha1 = ResLibTool.ComputeHashString(bs);
            bufs[sha1 + ".jsontree.txt"] = bs;


        }
Example #35
0
        public void SetBufs(Dictionary<string, byte[]> _bufs)
        {
            this.bufs = new Dictionary<string, byte[]>(_bufs);
            resmgr = new ResMgr(this);


        }
Example #36
0
 public void SetBufs(Dictionary <string, byte[]> _bufs)
 {
     this.bufs = new Dictionary <string, byte[]>(_bufs);
     resmgr    = new ResMgr(this);
 }
Example #37
0
        //test 23B62EB29EF1468D0FFFE8711B46391B866CA4F4
        public Material ReadFromJson(IResMgr resmgr, MyJson.JsonNode_Object json)
        {
            Material mat = new Material(Shader.Find(shaderName));

            if (jsonConfig.ContainsKey("params"))
            {
                var _param = jsonConfig["params"] as MyJson.JsonNode_Object;
                foreach (var jsonitem in json)
                {
                    if (jsonitem.Key == "shaderName")
                    {
                        continue;
                    }
                    if (_param.ContainsKey(jsonitem.Key))
                    {
                        var    item = _param[jsonitem.Key];
                        string type = item.asDict()["type"].AsString();
                        string flag = item.asDict()["flags"].AsString();
                        string name = item.asDict()["name"].AsString();
                        if (type == "Float" || type == "Range")
                        {
                            mat.SetFloat(name, (float)jsonitem.Value.AsDouble());
                            //json[name] = new MyJson.JsonNode_ValueNumber(mat.GetFloat(name));
                        }
                        else if (type == "Vector")
                        {
                            mat.SetVector(name, StringHelper.ToVector4(jsonitem.Value.AsString()));
                            //json[name] = new MyJson.JsonNode_ValueString(StringHelper.ToString(mat.GetVector(name)));
                        }
                        else if (type == "Color")
                        {
                            mat.SetColor(name, StringHelper.ToColor32(jsonitem.Value.AsString()));

                            //json[name] = new MyJson.JsonNode_ValueString(StringHelper.ToString(mat.GetColor(name)));
                        }
                        else if (type == "Texture")
                        {
                            string texdim = item.asDict()["texdim"].AsString();

                            if (texdim == "Tex2D")
                            {
                                var tex = resmgr.GetTexture(jsonitem.Value.AsString());
                                mat.SetTexture(name, tex);
                                //json["mainTexture"] = new MyJson.JsonNode_ValueString(texname);
                            }
                            else
                            {
                                throw new Exception("not support texdim:" + texdim);
                            }
                        }
                        else
                        {
                            throw new Exception("not support type:" + type);
                        }
                    }
                    else
                    {
                        throw new Exception("not have param:" + jsonitem.Key);
                    }
                    //Debug.Log(item.Value);
                }
            }
            return(mat);
        }
Example #38
0
        //test 23B62EB29EF1468D0FFFE8711B46391B866CA4F4
        public Material ReadFromJson(IResMgr resmgr, MyJson.JsonNode_Object json)
        {
            Material mat = new Material(Shader.Find(shaderName));
            if (jsonConfig.ContainsKey("params"))
            {
              
                var _param = jsonConfig["params"] as MyJson.JsonNode_Object;
                foreach (var jsonitem in json)
                {
                    if (jsonitem.Key == "shaderName") continue;
                    if (_param.ContainsKey(jsonitem.Key))
                    {
                        var item = _param[jsonitem.Key];
                        string type = item.asDict()["type"].AsString();
                        string flag = item.asDict()["flags"].AsString();
                        string name = item.asDict()["name"].AsString();
                        if (type == "Float" || type == "Range")
                        {
                            mat.SetFloat(name, (float)jsonitem.Value.AsDouble());
                            //json[name] = new MyJson.JsonNode_ValueNumber(mat.GetFloat(name));
                        }
                        else if (type == "Vector")
                        {
                            mat.SetVector(name, StringHelper.ToVector4(jsonitem.Value.AsString()));
                            //json[name] = new MyJson.JsonNode_ValueString(StringHelper.ToString(mat.GetVector(name)));
                        }
                        else if (type == "Color")
                        {
                            mat.SetColor(name, StringHelper.ToColor32(jsonitem.Value.AsString()));

                            //json[name] = new MyJson.JsonNode_ValueString(StringHelper.ToString(mat.GetColor(name)));
                        }
                        else if (type == "Texture")
                        {
                            string texdim = item.asDict()["texdim"].AsString();

                            if (texdim == "Tex2D")
                            {
                                var tex = resmgr.GetTexture(jsonitem.Value.AsString());
                                mat.SetTexture(name, tex);
                                //json["mainTexture"] = new MyJson.JsonNode_ValueString(texname);
                            }
                            else
                            {
                                throw new Exception("not support texdim:" + texdim);
                            }

                        }
                        else
                        {
                            throw new Exception("not support type:" + type);
                        }
                    }
                    else
                    {
                        throw new Exception("not have param:" + jsonitem.Key);
                    }
                    //Debug.Log(item.Value);



                }
            }
            return mat;
        }