예제 #1
0
파일: Entity.cs 프로젝트: prodongi/OLib
        public virtual void initialize(int _uuid, EntityCreateData createData)
        {
            OLib.Console.assert(0 < _uuid, "invalid uuid {0}", _uuid);

            m_uuid      = _uuid;
            m_tableId   = createData.tableId;
            m_transform = transform;
            position    = createData.position;
        }
예제 #2
0
        public virtual E create <E>(EntityCreateData createData) where E : Entity, new()
        {
            OLib.Console.assert(null != createData, "createData is null");

            E t = null;

            try
            {
                GameObject obj = instiateObject(createData.parent, createData.assetBundleName, createData.fileName);
                if (null == obj)
                {
                    return(null);
                }

                t = obj.GetComponent <E>();
                if (null == t)
                {
                    OLib.Console.warning(string.Format("Failed create entity, Not exist {0} component", createData.fileName));
                    return(null);
                }

                int udid = m_uuidCreator.make();
                if (m_entities.ContainsKey(udid))
                {
                    OLib.Console.warning(string.Format("Failed create entity, entity id {0} is already exists", udid));
                    return(null);
                }

                m_entities.Add(udid, t);
                t.initialize(udid, createData);
            }
            catch (Exception e)
            {
                OLib.Console.exception(e);

                if (null != t)
                {
                    t.Dispose();
                    t = null;
                }
            }

            return(t);
        }