Exemplo n.º 1
0
    public EntityBase CreateEntity(CONST_ENTITY_TYPE etype, uint roleId = 0)
    {
        EntityBase kEntity = null;

        kEntity = m_dicEntityCache.Get(etype, roleId);

        if (kEntity == null)
        {
            Func <EntityBase> fnCreator = null;
            m_dicEntityCreator.TryGetValue(etype, out fnCreator);
            if (fnCreator == null)
            {
                Debug.Log("没有注册此类:" + etype);
                return(null);
            }
            kEntity = fnCreator();
        }
        else
        {
            m_dicEntityCache.Remove(etype, roleId);
        }
        kEntity.roleId = roleId;
        RealAddEntity(kEntity);
        //kEntity.Reset();
        return(kEntity);
    }
Exemplo n.º 2
0
    private void RealAddEntity(EntityBase kEnt)
    {
        CONST_ENTITY_TYPE type = kEnt.type;
        uint roleId            = kEnt.roleId;

        m_dicEntityUpdate.Add(type, roleId, kEnt);
    }
Exemplo n.º 3
0
 public EntityBase GetEntity(CONST_ENTITY_TYPE type, uint roleId)
 {
     return(m_dicEntityUpdate.Get(type, roleId));
 }