public bool DestoryMainRole(string roleKey)
        {
            if (m_Roles.ContainsKey(roleKey))
            {
                CocoRoleEntity role = m_Roles [roleKey];
                GameObject.Destroy(role.gameObject);
                m_Roles.Remove(roleKey);
                return(true);
            }

            return(false);
        }
        public override void Init(CocoRoleEntity owner)
        {
            base.Init(owner);

            m_BodyHolder   = Owner.RoleHolder.BodyHolder;
            m_BodyProvider = Owner.Dress;
            if (m_BodyHolder == null || m_BodyProvider == null)
            {
                Debug.LogErrorFormat("[{0}<{1}>]->Init: body holder or provider NOT exists!", name, GetType().Name);
            }

            InitBones();
            InitRenderers();
        }
        public override void Init(CocoRoleEntity owner)
        {
            base.Init(owner);

            DressHolder = Owner.RoleHolder.DressHolder;
            if (DressHolder == null)
            {
                Debug.LogErrorFormat("[{0}<{1}>]->Init: dress holder NOT exists!", name, GetType().Name);
            }

            m_DressData = new CocoRoleDressData(((CocoAssetConfigHolder)DressHolder.ParentHolder).ItemHolderDic);
            m_DressData.InitBasicCoverItemDic(Owner.RoleHolder.boneItemId, Owner.RoleHolder.basicItemIds);

            m_ItemLoader = CocoLoad.GetOrAddComponent <CocoDressItemLoader> (gameObject);

            LoadBone();
        }
        /// <summary>
        /// Gets the or create main role.
        /// 建立主要角色 (全局存在,如果已存在,则返回存在的那个)
        /// </summary>
        /// <returns>The main role.</returns>
        /// <param name="roleId">Role identifier.</param>
        /// <param name="roleName">Role name.</param>
        public CocoRoleEntity GetOrCreateMainRole(string roleId, string roleName, bool recordDress = true)
        {
            if (m_Roles == null)
            {
                m_Roles = new Dictionary <string, CocoRoleEntity> ();
            }

            string tRoleKey = GetRoleKey(roleId, roleName);

            if (m_Roles.ContainsKey(tRoleKey))
            {
                return(m_Roles [tRoleKey]);
            }

            CocoRoleEntity role = CreateTempRole(roleId, roleName, transform, recordDress);

            m_Roles.Add(tRoleKey, role);
            return(role);
        }
        /// <summary>
        /// Creates the temp role.
        /// 创建一个临时的角色,不放在Control下,你需要自己删除
        /// </summary>
        /// <returns>The temp role.</returns>
        /// <param name="roleId">Role identifier.</param>
        /// <param name="roleName">Role name.</param>
        /// <param name="parent">parent transform</param>
        /// <param name="recordDress">record dress</param>
        public CocoRoleEntity CreateTempRole(string roleId, string roleName, Transform parent = null, bool recordDress = false)
        {
            CocoRoleHolder roleHolder = assetControl.ConfigHolder.GetRoleHolder(roleId);

            if (roleHolder == null)
            {
                Debug.LogErrorFormat("{0}->CreateTempRole: can NOT found role holder for role id {1}", GetType().Name, roleId);
                return(null);
            }

            CocoRoleEntity role = CocoLoad.InstantiateOrCreate <CocoRoleEntity> (string.Empty, parent);

            role.name = roleName;

            role.DressRecordKey      = GetRoleKey(roleId, roleName);
            role.IsDressRecordActive = recordDress;

            role.Init(roleHolder);

            return(role);
        }
Beispiel #6
0
 public virtual void Init(CocoRoleEntity owner)
 {
     Owner = owner;
 }