Пример #1
0
    /// <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);
            }
        }
    }
Пример #2
0
    /// <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);
        }
    }