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 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; }
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 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)); }
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 }
/// <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 } }
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; }
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 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; }
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); }
/// <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(); }
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) { 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); }
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); }
/// <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(); }
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); }
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 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; }
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; }
public void SetBufs(Dictionary<string, byte[]> _bufs) { this.bufs = new Dictionary<string, byte[]>(_bufs); resmgr = new ResMgr(this); }
public void SetBufs(Dictionary <string, byte[]> _bufs) { this.bufs = new Dictionary <string, byte[]>(_bufs); resmgr = new ResMgr(this); }
//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); }
//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; }