コード例 #1
0
    ///// <summary>
    ///// 切换到指定场景
    ///// </summary>
    ///// <param name="sceneName">场景名</param>
    //private void ChangeScene(string sceneName)
    //{
    //    StartCoroutine(CrossoverMaskImageAlpha(0, () => { }));
    //}

    #region 功能类
    /// <summary>
    /// 继续按钮按下事件
    /// </summary>
    public void ContinueButtonClick()
    {
        if (isLoadedScene || entranceType != EnumEntranceType.Start)
        {
            return;
        }
        //切换场景
        nowStartFocus = EventSystem.current.currentSelectedGameObject.GetComponent <UIFocus>();

        List <Archive> archiveList    = DataCenter.Instance.GetAllArchive();//获取所有存档名
        Archive        defaultArchive = archiveList.FirstOrDefault(temp => temp.ID == 1);

        if (defaultArchive != null)
        {
            DataCenter.Instance.LoadArchive(1);//加载第一个存档
            //隐藏该面板显示进入面板
            entranceType = EnumEntranceType.Transition;
            StartCoroutine(CrossoverMaskImageAlpha(1, () =>
            {
                startRect.gameObject.SetActive(false);
                enterRect.gameObject.SetActive(true);
                InitEnterRect();
                StartCoroutine(CrossoverMaskImageAlpha(0, () =>
                {
                    entranceType = EnumEntranceType.Enter;
                }));
            }));
            #region 老版的加载
            //DataCenter.Instance.LoadArchive(1);//加载第一个存档
            //GetArchiveData();
            #endregion
        }
    }
コード例 #2
0
    void Start()
    {
        entranceType = EnumEntranceType.Start;

        playerCreateTrans = GameObject.Find("PlayerInit").transform;

        if (settingCanvasPrefab)
        {
            GameObject settingGameObject = Instantiate(settingCanvasPrefab);
            settingCanvas = settingGameObject.GetComponent <Canvas>();
            settingGameObject.SetActive(false);
        }
        UIManager.Instance.KeyUpHandle += Instance_KeyUpHandle;
        StartCoroutine(CrossoverMaskImageAlpha(0));

        //判断现在是否有默认存档,如果有则显示继续,如果没有则显示新建
        List <Archive> archiveList    = DataCenter.Instance.GetAllArchive();//获取所有存档名
        Archive        defaultArchive = archiveList.FirstOrDefault(temp => temp.ID == 1);
        UIFocus        continueFoucs  = startUIFocusPath.NewUIFocusArray.FirstOrDefault(temp => string.Equals(temp.Tag, "Continue"));
        UIFocus        newFocus       = startUIFocusPath.NewUIFocusArray.FirstOrDefault(temp => string.Equals(temp.Tag, "New"));

        if (defaultArchive == null)
        {
            if (continueFoucs)
            {
                continueFoucs.gameObject.SetActive(false);
            }
            if (newFocus)
            {
                newFocus.gameObject.SetActive(true);
            }
        }
        else
        {
            if (continueFoucs)
            {
                continueFoucs.gameObject.SetActive(true);
            }
            if (newFocus)
            {
                newFocus.gameObject.SetActive(false);
            }
        }
        //设置当前选中
        if (nowStartFocus == null && startUIFocusPath)
        {
            nowStartFocus = startUIFocusPath.GetFirstFocus();
            if (nowStartFocus)
            {
                nowStartFocus.SetForcus();
            }
        }
    }
コード例 #3
0
    /// <summary>
    /// 输入名字的按钮点击时
    /// </summary>
    /// <param name="uiFocus"></param>
    public void CreateNameInputButtonClick(UIFocus uiFocus)
    {
        if (uiFocus)
        {
            switch (uiFocus.Tag)
            {
            case "OK":
            {
                UIFocusInputField uiFocusInputField = nameInputUIFocusPath.GetFirstFocus <UIFocusInputField>();
                if (uiFocusInputField)
                {
                    InputField inputField = uiFocusInputField.GetComponent <InputField>();
                    if (inputField)
                    {
                        if (!string.IsNullOrEmpty(inputField.text))
                        {
                            PlayerState playerState = DataCenter.Instance.GetEntity <PlayerState>();
                            playerState.PlayerName = inputField.text;
                            //再次保存
                            DataCenter.Instance.Save(1, "存档", "默认存档");
                            //隐藏该面板显示进入面板
                            entranceType = EnumEntranceType.Transition;
                            nameInputRect.gameObject.SetActive(false);
                            StartCoroutine(CrossoverMaskImageAlpha(1, () =>
                                {
                                    createRect.gameObject.SetActive(false);
                                    enterRect.gameObject.SetActive(true);
                                    InitEnterRect();
                                    StartCoroutine(CrossoverMaskImageAlpha(0, () =>
                                    {
                                        entranceType = EnumEntranceType.Enter;
                                    }));
                                }));
                        }
                    }
                }
            }
            break;

            case "Cancel":
                roleOfRaceRect.gameObject.SetActive(true);
                nameInputRect.gameObject.SetActive(false);
                entranceType = EnumEntranceType.Create_SelectRoleOfRace;
                InitCreateSelectRoleOfRace();
                break;
            }
        }
    }
コード例 #4
0
    /// <summary>
    /// 选择该种族
    /// </summary>
    /// <param name="roleOfRaceStr"></param>
    private void CreateSelectRoleOfRaceSelect(string roleOfRaceStr)
    {
        RoleOfRace enumRoleOfRace = (RoleOfRace)Enum.Parse(typeof(RoleOfRace), roleOfRaceStr);
        //选择该种族
        PlayerState playerState = DataCenter.Instance.GetEntity <PlayerState>();

        playerState.RoleOfRaceRoute = new List <RoleOfRace>();
        playerState.RoleOfRaceRoute.Add(enumRoleOfRace);
        //再次保存
        DataCenter.Instance.Save(1, "存档", "默认存档");
        //切换到输入名字状态
        entranceType = EnumEntranceType.Create_InputName;
        //显示输入名字面板
        roleOfRaceRect.gameObject.SetActive(false);
        nameInputRect.gameObject.SetActive(true);
        //初始化
        InitCreateNameInput();
    }
コード例 #5
0
    /// <summary>
    /// 将当前存档数据放入运行时数据中,同时跳转场景
    /// </summary>
    private void GetArchiveData()
    {
        entranceType = EnumEntranceType.Transition;

        PlayerState playerState = DataCenter.Instance.GetEntity <PlayerState>();

        #region  测试代码开始
        //playerState.PlayerAllGoods.Clear();
        //if (playerState.PlayerAllGoods.Count(temp => temp.ID == 10000) == 0)
        //{
        //    playerState.PlayerAllGoods.Add(new PlayGoods(10000, new Goods(EnumGoodsType.HFYJ, "恢复药剂", 1, 100, "恢复药剂")
        //    {
        //        goodsAbilities = new List<GoodsAbility>(new GoodsAbility[] { new GoodsAbility() { AbilibityKind = EnumGoodsAbility.HPRect_Rate, Level = 1, Value = 10 } })
        //    }, GoodsLocation.Package)
        //    {
        //        QualityType = EnumQualityType.White,
        //        Count = 10
        //    });
        //}
        ////添加属性点
        //playerState.PropertyPoint = 10;
        ////添加一个弓
        //playerState.PlayerAllGoods.Add(new PlayGoods(100000, new Goods(EnumGoodsType.WGCSG, "王国长杉弓", 1, 100, "王国长杉弓"), GoodsLocation.Package)
        //{
        //    leftRightArms = true,
        //    QualityType = EnumQualityType.Blue,
        //    Count = 1
        //});
        ////添加一个剑
        //playerState.PlayerAllGoods.Add(new PlayGoods(100001, new Goods(EnumGoodsType.TJ, "铁剑", 1, 100, "铁剑")
        //{
        //    goodsAbilities = new List<GoodsAbility>(new GoodsAbility[] { new GoodsAbility() { AbilibityKind = EnumGoodsAbility.EquipATK, Level = 1, Value = 60 } })
        //}, GoodsLocation.Package)
        //{
        //    leftRightArms = true,
        //    QualityType = EnumQualityType.Blue,
        //    Count = 1
        //});
        ////添加一个巨剑
        //playerState.PlayerAllGoods.Add(new PlayGoods(100002, new Goods(EnumGoodsType.YGDJ, "精钢大剑", 1, 100, "精钢大剑"), GoodsLocation.Wearing)
        //{
        //    leftRightArms = true,
        //    QualityType = EnumQualityType.Blue,
        //    Count = 1
        //});
        ////测试代码结束

        #endregion


        //通知运行时数据状态中心加载数据
        GameState.Instance.LoadArchive();
        //切换场景
        if (string.IsNullOrEmpty(playerState.Scene))
        {
            playerState.Scene    = "中央王国";
            playerState.Location = new Vector3(813.9f, 36.64f, 909.7f);
        }
        if (playerState.StreetID <= 0)
        {
            playerState.StreetID    = 2;
            playerState.StreetScene = "中央王国";
        }
        isLoadedScene = true;
        IGameState iGameState = GameState.Instance.GetEntity <IGameState>();
        iGameState.ChangedScene(playerState.Scene, playerState.Location, result => isLoadedScene = false);
    }
コード例 #6
0
    /// <summary>
    /// 新游戏按钮按下事件
    /// </summary>
    public void NewGameButtonClick()
    {
        if (isLoadedScene || entranceType != EnumEntranceType.Start)
        {
            return;
        }
        //切换场景
        nowStartFocus = EventSystem.current.currentSelectedGameObject.GetComponent <UIFocus>();
        List <Archive> archiveList    = DataCenter.Instance.GetAllArchive();//获取所有存档名
        Archive        defaultArchive = archiveList.FirstOrDefault(temp => temp.ID == 1);

        if (defaultArchive == null)
        {
            DataCenter.Instance.Save(1, "存档", "默认存档");
            DataCenter.Instance.LoadArchive(1);
            //设置默认数据
            //设置默认的按键 1:1_183
            KeyContactData keyContactData = DataCenter.Instance.GetEntity <KeyContactData>();
            //设置采集键
            Sprite collectSprite = SpriteManager.GetSrpite("1:1_183");
            keyContactData.SetKeyContactStruct((int)EnumInputType.A, new KeyContactStruct()
            {
                keyContactType = EnumKeyContactType.Action, name = "采集", Sprite = collectSprite, id = 1
            }, EnumKeyContactDataZone.Collect);
            //设置对话键
            Sprite talkSprite = SpriteManager.GetSrpite("1:1_165");
            keyContactData.SetKeyContactStruct((int)EnumInputType.A, new KeyContactStruct()
            {
                keyContactType = EnumKeyContactType.Action, name = "交谈", Sprite = talkSprite, id = 2
            }, EnumKeyContactDataZone.Dialogue);
            //设置功能键
            Sprite actionSprite = SpriteManager.GetSrpite("1:1_183");
            keyContactData.SetKeyContactStruct((int)EnumInputType.A, new KeyContactStruct()
            {
                keyContactType = EnumKeyContactType.Action, name = "交互", Sprite = actionSprite, id = 3
            }, EnumKeyContactDataZone.Action);
            //设置默认的等级
            PlayerState playerState = DataCenter.Instance.GetEntity <PlayerState>();
            playerState.Level           = 1;
            playerState.Experience      = 0;
            playerState.RoleOfRaceRoute = new List <RoleOfRace>();
            //再次保存
            DataCenter.Instance.Save(1, "存档", "默认存档");

            #region 测试用添加的数据
            /*测试代码*/
            //添加技能点
            EnumSkillType[] enumSkillTypes = Enum.GetValues(typeof(EnumSkillType)).OfType <EnumSkillType>().Where(temp =>
                                                                                                                  (temp <EnumSkillType.MagicCombinedLevel1End && temp> EnumSkillType.MagicCombinedLevel1Start) ||
                                                                                                                  (temp <EnumSkillType.MagicCombinedLevel2End && temp> EnumSkillType.MagicCombinedLevel2Start) ||
                                                                                                                  (temp <EnumSkillType.MagicCombinedLevel3End && temp> EnumSkillType.MagicCombinedLevel3Start) ||
                                                                                                                  (temp <EnumSkillType.MagicCombinedLevel4End && temp> EnumSkillType.MagicCombinedLevel4Start)
                                                                                                                  ).ToArray();
            enumSkillTypes = Enum.GetValues(typeof(EnumSkillType)).OfType <EnumSkillType>().Distinct().ToArray();//所有技能加1
            foreach (var item in enumSkillTypes)
            {
                playerState.SkillPoint.Add(item, 1);
            }
            //playerState.SkillPoint.Add(EnumSkillType.MagicRelease, 1);
            playerState.FreedomPoint = 2;
            //添加按键
            keyContactData = DataCenter.Instance.GetEntity <KeyContactData>();
            keyContactData.SetKeyContactStruct((int)EnumInputType.A, new KeyContactStruct()
            {
                id = 199, key = (int)EnumInputType.A, keyContactType = EnumKeyContactType.Skill, name = "释放魔法"
            });
            keyContactData.SetKeyContactStruct((int)EnumInputType.Up, new KeyContactStruct()
            {
                id = 1001, key = (int)EnumInputType.Up, keyContactType = EnumKeyContactType.Skill, name = "奥术弹"
            });
            keyContactData.SetKeyContactStruct((int)EnumInputType.Right, new KeyContactStruct()
            {
                id = 1101, key = (int)EnumInputType.Right, keyContactType = EnumKeyContactType.Skill, name = "火元素"
            });
            keyContactData.SetKeyContactStruct((int)EnumInputType.Left, new KeyContactStruct()
            {
                id = 1004, key = (int)EnumInputType.Left, keyContactType = EnumKeyContactType.Skill, name = "魔力导向"
            });
            keyContactData.SetKeyContactStruct((int)EnumInputType.Down, new KeyContactStruct()
            {
                id = 1201, key = (int)EnumInputType.Down, keyContactType = EnumKeyContactType.Skill, name = "连续魔力导向"
            });
            keyContactData.SetKeyContactStruct((int)EnumInputType.X, new KeyContactStruct()
            {
                id = 201, key = (int)EnumInputType.X, keyContactType = EnumKeyContactType.Skill, name = "普通攻击"
            });
            keyContactData.SetKeyContactStruct((int)EnumInputType.Y, new KeyContactStruct()
            {
                id = (int)EnumSkillType.JAS03, /*key = (int)EnumInputType.Y,*/ keyContactType = EnumKeyContactType.Skill, name = "燕返"
            });
            keyContactData.SetKeyContactStruct((int)EnumInputType.B, new KeyContactStruct()
            {
                id = (int)EnumSkillType.ZS03, keyContactType = EnumKeyContactType.Skill, name = "冲锋"
            });
            int key = (int)(EnumInputType.A | EnumInputType.LB);
            keyContactData.SetKeyContactStruct(key, new KeyContactStruct()
            {
                id = (int)EnumSkillType.KZS03, key = key, keyContactType = EnumKeyContactType.Skill, name = "战吼"
            });
            //添加装备
            //int playGoodsID = NowTimeToID.GetNowID(DataCenter.Instance.GetEntity<GameRunnedState>());
            //Goods goods = new Goods(EnumGoodsType.XJJ, "测试武器", 1, 10, "123");
            //goods.goodsAbilities.Add(new GoodsAbility() { AbilibityKind = EnumGoodsAbility.ASPD, Value = 10 });
            //goods.SpriteName = "1:1_226";

            //PlayGoods playGoods = new PlayGoods(playGoodsID, goods, GoodsLocation.Package);
            //playerState.PlayerAllGoods.Add(playGoods);
            //playerState.Sprice = 10000;
            /*****测试代码结束*****/

            #endregion

            //隐藏该面板显示创建面板的种族选择面板
            entranceType = EnumEntranceType.Transition;
            StartCoroutine(CrossoverMaskImageAlpha(1, () =>
            {
                startRect.gameObject.SetActive(false);
                createRect.gameObject.SetActive(true);
                roleOfRaceRect.gameObject.SetActive(true);
                nameInputRect.gameObject.SetActive(false);
                StartCoroutine(CrossoverMaskImageAlpha(0, () =>
                {
                    entranceType = EnumEntranceType.Create_SelectRoleOfRace;
                    InitCreateSelectRoleOfRace();
                }));
            }));
            #region 老版的直接加载
            //DataCenter.Instance.Save(1, "存档", "默认存档");
            //DataCenter.Instance.LoadArchive(1);
            ////设置默认数据
            ////设置默认的按键 1:1_183
            //KeyContactData keyContactData = DataCenter.Instance.GetEntity<KeyContactData>();
            ////设置采集键
            //Sprite collectSprite = SpriteManager.GetSrpite("1:1_183");
            //keyContactData.SetKeyContactStruct((int)EnumInputType.A, new KeyContactStruct() { keyContactType = EnumKeyContactType.Action, name = "采集", Sprite = collectSprite, id = 1 }, EnumKeyContactDataZone.Collect);
            ////设置对话键
            //Sprite talkSprite = SpriteManager.GetSrpite("1:1_165");
            //keyContactData.SetKeyContactStruct((int)EnumInputType.A, new KeyContactStruct() { keyContactType = EnumKeyContactType.Action, name = "交谈", Sprite = talkSprite, id = 2 }, EnumKeyContactDataZone.Dialogue);
            ////设置默认的等级
            //PlayerState playerState = DataCenter.Instance.GetEntity<PlayerState>();
            //playerState.Level = 1;
            //playerState.Experience = 0;
            //playerState.RoleOfRaceRoute = RoleOfRaceHelper.GetAllEvolvePath(RoleOfRace.Human).FirstOrDefault();
            ////再次保存
            //DataCenter.Instance.Save(1, "存档", "默认存档");
            ////获取数据并切换场景
            //GetArchiveData();
            #endregion
        }
    }