public CharacterSkin(CreatureCptCharacter character) : base(character) { if (character.characterHead == null) { LogUtil.LogError($"初始化角色失败,{character.gameObject.name}的角色 缺少 Head 部件"); return; } if (character.characterBody == null) { LogUtil.LogError($"初始化角色失败,{character.gameObject.name}的角色 缺少 Body 部件"); return; } if (character.characterHair == null) { LogUtil.LogError($"初始化角色失败,{character.gameObject.name}的角色 缺少 Hair 部件"); return; } characterData = character.GetCharacterData(); headRenderer = character.characterHead.GetComponent <MeshRenderer>(); bodyRenderer = character.characterBody.GetComponentInChildren <SkinnedMeshRenderer>(); objHairContainer = character.characterHair; if (this.headRenderer != null) { headMat = headRenderer.material; } if (this.bodyRenderer != null) { bodyMat = bodyRenderer.material; } }
/// <summary> /// 获取角色 /// </summary> /// <returns></returns> protected CreatureCptCharacter GetCharacter() { GameObject objCharacter = SceneMainHandler.Instance.manager.GetCharacterObjByIndex(userDataIndex); CreatureCptCharacter character = objCharacter.GetComponent <CreatureCptCharacter>(); return(character); }
private void Awake() { characterController = GetComponent <CharacterController>(); character = GetComponentInChildren <CreatureCptCharacter>(); inputActionJump = InputHandler.Instance.manager.GetInputPlayerData("Jump"); inputActionJump.started += HandleForJumpStart; inputActionUseL = InputHandler.Instance.manager.GetInputPlayerData("UseL"); inputActionUseL.started += HandleForUseL; inputActionUseL.canceled += HandleForUseEnd; inputActionUseR = InputHandler.Instance.manager.GetInputPlayerData("UseR"); inputActionUseR.started += HandleForUseR; inputActionUseR.canceled += HandleForUseEnd; inputActionUseFace = InputHandler.Instance.manager.GetInputPlayerData("UseE"); inputActionUseFace.started += HandleForUseE; inputActionUseDrop = InputHandler.Instance.manager.GetInputPlayerData("Drop"); inputActionUseDrop.started += HandleForDrop; inputActionuserDetailsData = InputHandler.Instance.manager.GetInputPlayerData("UserDetails"); inputActionuserDetailsData.started += HandleForUserDetails; inputActionMove = InputHandler.Instance.manager.GetInputPlayerData("Move"); InvokeRepeating("HandlerForUseItemSightTarget", 0.1f, 0.1f); }
/// <summary> /// 选择回调 /// </summary> /// <param name="selectView"></param> /// <param name="position"></param> public void ChangeSelectPosition(SelectView selectView, int position) { CreatureCptCharacter character = GetCharacter(); if (character == null) { LogUtil.LogError("没有找到Character组件"); return; } if (selectView == ui_ViewSelectChange_Hair) { CharacterInfoBean characterInfo = listHairInfoData[position]; character.characterSkin.ChangeHair(characterInfo.id); } else if (selectView == ui_ViewSelectChange_Eye) { CharacterInfoBean characterInfo = listEyeInfoData[position]; character.characterSkin.ChangeEye(characterInfo.id); } else if (selectView == ui_ViewSelectChange_Mouth) { CharacterInfoBean characterInfo = listMouthInfoData[position]; character.characterSkin.ChangeMouth(characterInfo.id); } else if (selectView == ui_ViewSelectChange_Clothes) { ItemsInfoBean itemsInfo = listClotehsInfoData[position]; character.characterEquip.ChangeClothes(itemsInfo.id); } }
public CharacterBase(CreatureCptCharacter character) { this.character = character; if (character != null) { characterData = character.GetCharacterData(); } }
public void Awake() { character = GetComponentInChildren <CreatureCptCharacter>(); playerPickUp = new PlayerPickUp(this); playerRay = new PlayerRay(this); InvokeRepeating("UpdatePlayerData", 0.2f, 0.2f); }
public CharacterEquip(CreatureCptCharacter character) : base(character) { if (character.characterHead == null) { LogUtil.LogError($"初始化角色失败,{character.gameObject.name}的角色 缺少 Clothes 部件"); return; } objClothesContainer = character.characterClothes; }
/// <summary> /// 改变快捷栏 /// </summary> /// <param name="indexForShortcuts"></param> public void SetShortcuts(int indexForShortcuts) { this.indexForShortcuts = indexForShortcuts; //改变手中的物品 Player player = GameHandler.Instance.manager.player; if (player != null) { CreatureCptCharacter character = player.GetCharacter(); ItemsBean itemsData = GetItemsFromShortcut(); character.CharacterItems.ChangeRightHandItem(itemsData.itemId); } }
public override void Awake() { base.Awake(); //获取渲染摄像头 GameObject objRenderModel = LoadResourcesUtil.SyncLoadData <GameObject>("UI/Render/RenderCharacterUI"); //实例化渲染 objRender = Instantiate(UIHandler.Instance.manager.GetUITypeContainer(UITypeEnum.Model3D).gameObject, objRenderModel); //获取展示的角色 showCharacter = objRender.GetComponentInChildren <CreatureCptCharacter>(); ui_RotateLeft.AddLongClickListener(OnLongClickForRoateR); ui_RotateRight.AddLongClickListener(OnLongClickForRoateL); }
/// <summary> /// 颜色选择回调 /// </summary> /// <param name="colorView"></param> /// <param name="r"></param> /// <param name="g"></param> /// <param name="b"></param> public void SelectColorChange(SelectColorView colorView, float r, float g, float b) { CreatureCptCharacter character = GetCharacter(); if (character == null) { LogUtil.LogError("没有找到Character组件"); return; } if (colorView == ui_ViewSelectColorChange_Hair) { character.characterSkin.ChangeHairColor(new Color(r, g, b, 1)); } else if (colorView == ui_ViewSelectColorChange_Skin) { character.characterSkin.ChangeSkinColor(new Color(r, g, b, 1)); } }
/// <summary> /// 显示角色 /// </summary> public void ShowCharacter() { //先隐藏三个角色 manager.ShowCharacterObjByIndex(1, false); manager.ShowCharacterObjByIndex(2, false); manager.ShowCharacterObjByIndex(3, false); GameDataHandler.Instance.manager.GetAllUserData((listData) => { for (int i = 0; i < listData.Count; i++) { UserDataBean userData = listData[i]; GameObject objCharacter = manager.ShowCharacterObjByIndex(userData.dataIndex, true); if (objCharacter == null) { continue; } CreatureCptCharacter character = objCharacter.GetComponent <CreatureCptCharacter>(); character.SetCharacterData(userData.characterData); } }); }
/// <summary> /// 改变性别 /// </summary> /// <param name="sexType"></param> public void ChangeSex(SexTypeEnum sexType) { CreatureCptCharacter character = GetCharacter(); character.characterSkin.ChangeSex(sexType); ui_Man.interactable = true; ui_Woman.interactable = true; switch (sexType) { case SexTypeEnum.Man: ui_Man.interactable = false; ui_SexTitle.text = TextHandler.Instance.GetTextById(33); break; case SexTypeEnum.Woman: ui_Woman.interactable = false; ui_SexTitle.text = TextHandler.Instance.GetTextById(34); break; } }
/// <summary> /// 处理-开始游戏 /// </summary> public void HandleForStartGame() { CreatureCptCharacter character = GetCharacter(); string characterName = ui_NameInput.text; string userId = $"UserId_{SystemUtil.GetUUID(SystemUtil.UUIDTypeEnum.N)}"; if (characterName.IsNull()) { UIHandler.Instance.ToastHint <ToastView>(TextHandler.Instance.GetTextById(30001)); return; } Action <DialogView, DialogBean> actionSubmit = (view, data) => { UserDataBean userData = new UserDataBean(); userData.dataIndex = userDataIndex; userData.userId = userId; userData.characterData = character.GetCharacterData(); userData.characterData.characterName = characterName; userData.seed = UnityEngine.Random.Range(0, int.MaxValue); //设置位置 userData.userPosition.SetPosition(Vector3.zero); userData.userPosition.SetWorldType(WorldTypeEnum.Main); //设置时间 userData.timeForGame.hour = 6; //保存数据 GameDataHandler.Instance.manager.SaveUserData(userData); //使用数据 GameDataHandler.Instance.manager.UseUserData(userData); //改变场景 SceneMainHandler.Instance.ChangeScene(ScenesEnum.GameScene); }; DialogBean dialogData = new DialogBean(); dialogData.content = TextHandler.Instance.GetTextById(20002); dialogData.dialogType = DialogEnum.Normal; dialogData.actionSubmit = actionSubmit; UIHandler.Instance.ShowDialog <UIDialogNormal>(dialogData); }
/// <summary> /// 设置装备回调 /// </summary> /// <param name="changeContainer"></param> /// <param name="itemId"></param> public void CallBackForSetEquip(UIViewItemContainer changeContainer, long itemId) { foreach (var itemContainer in dicEquip) { if (changeContainer == itemContainer.Value) { //更换装备 Player player = GameHandler.Instance.manager.player; CreatureCptCharacter character = player.GetCharacter(); character.characterEquip.ChangeEquip(itemContainer.Key, itemId); //设置渲染摄像头 Action <GameObject> callBack = (objModel) => { showCharacter.SetLayerAllChild(LayerInfo.RenderCamera); }; //UI显示也修改 showCharacter.characterEquip.ChangeEquip(itemContainer.Key, itemId, callBack); } } }
public CharacterItems(CreatureCptCharacter character) : base(character) { objRightHand = character.characterRightHand; itemHoldRight = objRightHand.GetComponentInChildren <ItemCptHold>(); }
public CharacterAnim(CreatureCptCharacter character) : base(character) { creatureAnim = character.creatureAnim; }