public void Init(CocoRoleHolder roleHolder)
        {
            RoleHolder = roleHolder;

            // dress
            Dress = AddUnit <CocoRoleDress> ();

            StartCoroutine(CocoWait.WaitForFunc(() => {
                return(!Dress.IsReady);
            }, () => {
                // body
                Body = AddUnit <CocoRoleBody> ();

                // shadow
                if (RoleHolder.enableShadow)
                {
                    Shadow = CocoLoad.Instantiate <CocoRoleShadow> ("role/role_shadow", transform, CocoLoad.TransStayOption.Local);
                    Shadow.FollowTarget = Body.GetBone(CocoRoleBoneID.Root);
                }

                // layer
                if (transform.parent != null)
                {
                    transform.SetSelfAndChildLayer(transform.parent.gameObject.layer);
                }

                IsReady = true;
            }));
        }
Example #2
0
        private CocoRoleHolder GenerateRole(CocoDressEditorRoleConfigHolder editorRoleConfigHolder)
        {
            var roleHolder = new CocoRoleHolder {
                id           = editorRoleConfigHolder.roleId,
                boneItemId   = editorRoleConfigHolder.boneItemId,
                basicItemIds = editorRoleConfigHolder.basicItemIds,
                dressId      = editorRoleConfigHolder.dressId,
                bodyId       = editorRoleConfigHolder.bodyId,
                enableShadow = editorRoleConfigHolder.enableShadow
            };

            return(roleHolder);
        }
        /// <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);
        }
Example #4
0
 private CocoRoleConfigHolder GenerateRoleConfig(CocoRoleHolder roleHolder)
 {
     return(GenerateConfig <CocoRoleConfigHolder, CocoRoleHolder> (roleHolder, "role_entity"));
 }