Пример #1
0
 /// <summary>
 /// 当显示时初始化按键数据
 /// </summary>
 private void OnEnable()
 {
     playerState     = DataCenter.Instance.GetEntity <PlayerState>();
     keyContactData  = DataCenter.Instance.GetEntity <KeyContactData>();
     skillStructData = DataCenter.Instance.GetMetaData <SkillStructData>();
     selectTargetPanel.gameObject.SetActive(false);
     UIManager.Instance.KeyUpHandle += Instance_KeyUpHandle;
     enumKeySettingType              = EnumKeySettingType.Lattice;
     if (keySettingFocusPath)
     {
         nowKeySettingLattice = keySettingFocusPath.GetFirstFocus() as UIFocusKeySettingLattice;
         if (nowKeySettingLattice)
         {
             nowKeySettingLattice.SetForcus();
         }
         //初始化显示
         UIFocus[] uiKeySettingLatticeArray = keySettingFocusPath.NewUIFocusArray;// keySettingFocusPath.UIFocuesArray;
         foreach (UIFocus item in uiKeySettingLatticeArray)
         {
             if (!item)
             {
                 continue;
             }
             UIFocusKeySettingLattice uiKeySettingLattice = item as UIFocusKeySettingLattice;
             int inputKey = uiKeySettingLattice.GetKeySettingInput();//输入的按键值
             if (uiKeySettingLattice)
             {
                 KeyContactStruct[] keyContactStructs = keyContactData.GetKeyContactStruct(inputKey);
                 if (keyContactStructs.Length > 0)
                 {
                     uiKeySettingLattice.keyLatticeType = keyContactStructs[0].keyContactType;
                     uiKeySettingLattice.id             = keyContactStructs[0].id;
                 }
                 else
                 {
                     uiKeySettingLattice.keyLatticeType = EnumKeyContactType.None;
                     uiKeySettingLattice.id             = 0;
                 }
                 //初始化显示
                 uiKeySettingLattice.InitShow();
             }
         }
     }
 }
Пример #2
0
    /// <summary>
    /// 当隐藏时处理
    /// </summary>
    private void OnDisable()
    {
        UIManager.Instance.KeyUpHandle -= Instance_KeyUpHandle;
        if (nowKeySettingLattice)
        {
            nowKeySettingLattice.LostForcus();
        }
        //保存状态
        UIFocus[] uiKeySettingLatticeArray = keySettingFocusPath.UIFocuesArray;
        foreach (UIFocus item in uiKeySettingLatticeArray)
        {
            if (!item)
            {
                continue;
            }
            UIFocusKeySettingLattice uiKeySettingLattice = item as UIFocusKeySettingLattice;
            int inputKey = uiKeySettingLattice.GetKeySettingInput();//输入的按键值
            if (uiKeySettingLattice)
            {
                //KeyContactStruct[] keyContactStructs = keyContactData.GetKeyContactStruct(inputKey);
                KeyContactStruct newTarget = new KeyContactStruct();
                newTarget.id             = uiKeySettingLattice.id;
                newTarget.keyContactType = uiKeySettingLattice.keyLatticeType;
                //if (keyContactStructs.Length > 0)
                //{
                //    newTarget = keyContactStructs[0];
                //}
                //else
                //{
                //设置对象的名字
                switch (newTarget.keyContactType)
                {
                case EnumKeyContactType.None:
                    newTarget.name = "None";
                    break;

                case EnumKeyContactType.Skill:
                    EnumSkillType[] skillTypes = SkillCombineStaticTools.GetCombineSkills(newTarget.id);
                    newTarget.name = SkillCombineStaticTools.GetCombineSkillsName(skillTypes);
                    //如果是火球术
                    if (newTarget.id == SkillCombineStaticTools.GetCombineSkillKey(new EnumSkillType[] { EnumSkillType.FS01, EnumSkillType.YSX01 }))
                    {
                        //给任务系统填入状态
                        INowTaskState iNowTaskState = GameState.Instance.GetEntity <INowTaskState>();
                        iNowTaskState.CheckNowTask(EnumCheckTaskType.Special, (int)TaskMap.Enums.EnumTaskSpecialCheck.SetFireSkillToLattice);
                    }
                    break;

                case EnumKeyContactType.Prap:
                    PlayGoods playGoods = playerState.PlayerAllGoods.FirstOrDefault(temp => temp.ID == newTarget.id);
                    newTarget.name = playGoods.GoodsInfo.GoodsName;
                    break;

                case EnumKeyContactType.Action:
                    newTarget.name = "暂无功能";
                    break;
                }
                //}
                keyContactData.SetKeyContactStruct(inputKey, newTarget);
            }
        }
    }