/// <summary> /// 加载之前保存的所有模型 /// </summary> private void LoadConfigObject(string key, params object[] parms) { ModelInfoData realdata = parms[0] as ModelInfoData; if (realdata.isNew == 0)//旧模型加Collider { Debug.Log("旧模型加Collider"); if (GenerateTreeNeed.Instance.AllGameObjectDic.ContainsKey(realdata.modelid)) { GameObject oldobj = GenerateTreeNeed.Instance.AllGameObjectDic[realdata.modelid]; oldobj.tag = "Device"; BoxCollider bc = oldobj.GetComponent <BoxCollider>(); if (!bc) { bc = oldobj.AddComponent <BoxCollider>(); Vector3 center = new Vector3(float.Parse(realdata.colliderCenterX), float.Parse(realdata.colliderCenterY), float.Parse(realdata.colliderCenterZ)); bc.center = center; Vector3 size = new Vector3(float.Parse(realdata.colliderSizeX), float.Parse(realdata.colliderSizeY), float.Parse(realdata.colliderSizeZ)); bc.size = size; } ModelInfo info = oldobj.GetComponent <ModelInfo>(); if (!info) { info = oldobj.AddComponent <ModelInfo>(); info.SelfData.cameraX = realdata.cameraX; info.SelfData.cameraY = realdata.cameraY; info.SelfData.cameraZ = realdata.cameraZ; info.SelfData.cameraRotateX = realdata.cameraRotateX; info.SelfData.cameraRotateY = realdata.cameraRotateY; info.SelfData.cameraRotateZ = realdata.cameraRotateZ; info.SelfData.isAdd = realdata.isAdd; info.SelfData.isNew = realdata.isNew; } } } else { Debug.Log("加载之前保存的模型"); GameObject go = m_ModelPool.GetPoolsObject(realdata.type); if (go != null) { SetModeInfo(realdata, go); } else { ResourceLoadCallbacak cb = new ResourceLoadCallbacak(realdata, LoadModelCallback); ResourceManager.Instance.LoadResource(realdata.type.ToString(), ResourceType.Device, cb); } } }
/// <summary> /// 添加新模型,处理 /// 对象池存储的唯一ID,是类型type字段 /// </summary> private void AddANewModel(string key, params object[] arms) { int type = (int)arms[0]; ModelInfoData infodata = new ModelInfoData(); infodata.cmd = 10009; infodata.type = type; GameObject go = m_ModelPool.GetPoolsObject(type); if (go != null) { SetModeInfo(infodata, go); } else { ResourceLoadCallbacak cb = new ResourceLoadCallbacak(infodata, LoadModelCallback); ResourceManager.Instance.LoadResource(infodata.type.ToString(), ResourceType.Device, cb); } }