Beispiel #1
0
    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;
        }
    }
Beispiel #2
0
    /// <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);
    }
Beispiel #4
0
    /// <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);
        }
    }
Beispiel #5
0
 public CharacterBase(CreatureCptCharacter character)
 {
     this.character = character;
     if (character != null)
     {
         characterData = character.GetCharacterData();
     }
 }
Beispiel #6
0
    public void Awake()
    {
        character = GetComponentInChildren <CreatureCptCharacter>();

        playerPickUp = new PlayerPickUp(this);
        playerRay    = new PlayerRay(this);

        InvokeRepeating("UpdatePlayerData", 0.2f, 0.2f);
    }
Beispiel #7
0
 public CharacterEquip(CreatureCptCharacter character) : base(character)
 {
     if (character.characterHead == null)
     {
         LogUtil.LogError($"初始化角色失败,{character.gameObject.name}的角色 缺少 Clothes 部件");
         return;
     }
     objClothesContainer = character.characterClothes;
 }
Beispiel #8
0
    /// <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);
        }
    }
Beispiel #9
0
    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);
    }
Beispiel #10
0
    /// <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));
        }
    }
Beispiel #11
0
 /// <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);
         }
     });
 }
Beispiel #12
0
    /// <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;
        }
    }
Beispiel #13
0
    /// <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);
    }
Beispiel #14
0
    /// <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);
            }
        }
    }
Beispiel #15
0
 public CharacterItems(CreatureCptCharacter character) : base(character)
 {
     objRightHand  = character.characterRightHand;
     itemHoldRight = objRightHand.GetComponentInChildren <ItemCptHold>();
 }
Beispiel #16
0
 public CharacterAnim(CreatureCptCharacter character) : base(character)
 {
     creatureAnim = character.creatureAnim;
 }