예제 #1
0
 private PoolCollector()
 {
     s_ModelPool        = new ModelPool();
     s_ShaderPool       = new ShaderPool();
     s_RenderTargetPool = new RenderTargetPool();
     s_TexturePool      = new TexturePool();
     s_AnimationPool    = new AnimationPool();
 }
예제 #2
0
 private void Start()
 {
     m_NewModelDic    = new Dictionary <string, ModelInfo>();
     m_SensorParent   = new Dictionary <int, Transform>();
     m_PoolName       = "ModelPool";
     m_Offset         = new Vector3(0, 10, 0);
     m_NewModelParent = new GameObject("NewModelPoolParent").transform;
     MessageManager.Instance.AddMessageEventListener(m_UpdateSelectID, UpdateSelsectObject);
     MessageManager.Instance.AddMessageEventListener(m_AddNewModel, AddANewModel);
     MessageManager.Instance.AddMessageEventListener(m_SavaAModelData, SaveModeolInfo);
     MessageManager.Instance.AddMessageEventListener(m_LoadConfigObject, LoadConfigObject);
     MessageManager.Instance.AddMessageEventListener(m_DeleteAModel, DeleteModel);
     MessageManager.Instance.AddMessageEventListener(m_SetSensorActive, SetSensorActive);
     SGGamePoolManager.Instance.PushControl <GameObject>(new ModelPool(m_PoolName), true);
     m_ModelPool = SGGamePoolManager.Instance.GetPoolControl <GameObject>(m_PoolName) as ModelPool;
 }
        public static BaseAliasModel Create(BaseDevice device, String identifier, BaseTexture texture, Type modelType, Type descType, aliashdr_t aliasHeader)
        {
            if (ModelPool.ContainsKey(identifier))
            {
                return(( BaseAliasModel )ModelPool[identifier]);
            }

            var desc = ( BaseAliasModelDesc )Activator.CreateInstance(descType);

            desc.Name        = identifier;
            desc.Texture     = texture;
            desc.AliasHeader = aliasHeader;

            var model = ( BaseAliasModel )Activator.CreateInstance(modelType, device, desc);

            model.Initialise();

            return(model);
        }
예제 #4
0
    public static BasePool create(string resName, string resPath, E_PoolMode mode, E_PoolType pType, float time)
    {
        BasePool p = null;

        switch (pType)
        {
        case E_PoolType.UICache:
            p = new UICachePool(resName, resPath, mode, pType, time);
            break;

        case E_PoolType.Atlas:
            p = new AtlasPool(resName, resPath, mode, pType, time);
            break;

        case E_PoolType.Model:
            p = new ModelPool(resName, resPath, mode, pType, time);
            break;

        default:
            p = new BasePool(resName, resPath, mode, pType, time);
            break;
        }
        return(p);
    }
예제 #5
0
 void FreePool(ModelPool p)
 {
     p.OnReset();
     pool.Add(p);
 }