コード例 #1
0
        /// <summary>
        /// 加载技能
        /// TODO: 把 <see cref="SkillType.Displacement"/> 设置为固定技能
        /// </summary>
        private void InitSkillDetail()
        {
            var skillDodge = new CommonSkillDetail.Builder(SkillType.DodgeNone, 0, "DodgeNone").SetColdDownTime(0)
                             .Build();
            var skillWpNone = new CommonSkillDetail.Builder(SkillType.WpNone, 0, "WpNone").SetColdDownTime(0).Build();
            var skillDis    = new CommonSkillDetail.Builder(SkillType.Displacement, 0, "Displacement")
                              .SetColdDownTime(0.5f).Build();

            var skillList = new List <SkillDetail>
            {
                new CommonSkillDetail.Builder(SkillType.FireBall, 0, "FireBall").SetColdDownTime(0.5f).Build(),
                new CommonSkillDetail.Builder(SkillType.LightningBolt, 0, "LightningBolt").SetColdDownTime(2f).Build(),
                skillDodge,
                skillWpNone,
                skillDis
            };

            // Skill-pack (All skills)
            var skillPack = new SkillPack(
                skillDodge, skillWpNone, skillDis, skillList
                );

            BasePlayer player = this;

            _skillManager.Init(ref player, ref skillPack);
        }
コード例 #2
0
        /// <summary>
        /// 加载玩家信息
        /// TODO:加载存档选项
        /// </summary>
        public void LoadPlayerInfo()
        {
            QMhelper.Load();

            var fileInfo = new FileInfo("Data.bin");

//            if (fileInfo.Exists)
            if (false)
            {
                Debug.Log("---------READ FROM FILE----------");
                Debug.Log("Path: " + fileInfo.Directory);

                var    formatter = new BinaryFormatter();
                Stream stream    = new FileStream("Data.bin", FileMode.Open, FileAccess.Read, FileShare.Read);
                PlayerInfo = (PlayerInfo)formatter.Deserialize(stream);
#if UNITY_EDITOR
                Debug.Log(PlayerInfo.ToString());
#endif
            }
            else
            {
                Debug.Log("---------NEW DATA----------");

                // New skills (Common skill)
                var skillDodge = new CommonSkillDetail.Builder(SkillType.DodgeNone, 0, "DodgeNone").SetColdDownTime(0)
                                 .Build();
                var skillWpNone = new CommonSkillDetail.Builder(SkillType.WpNone, 0, "WpNone").SetColdDownTime(0)
                                  .Build();
                var skillDis = new CommonSkillDetail.Builder(SkillType.Displacement, 0, "Displacement")
                               .SetColdDownTime(0.5f).Build();

                // Data and skill order
                var skillList = new List <SkillDetail>
                {
                    new CommonSkillDetail.Builder(SkillType.FireBall, 0, "FireBall").SetColdDownTime(0.5f).Build(),
                    new CommonSkillDetail.Builder(SkillType.LightningBolt, 0, "LightningBolt").SetColdDownTime(2f)
                    .Build(),
                    skillDodge,
                    skillWpNone,
                    skillDis
                };

                // Skill-pack (All skills)
                var skillPack = new SkillPack(
                    skillDodge, skillWpNone, skillDis, skillList
                    );

                // TODO: 玩家昵称设置
                PlayerInfo = new PlayerInfo("Player", new List <WeaponData>(), skillPack);
            }

            var playerGo = Instantiate(ResourceLoader.PlayerRes, new Vector3(16.5f, -71),
                                       Quaternion.Euler(Vector3.zero));
            Player = playerGo.GetComponent <BasePlayer>();
            Player.Health.health = (int)QMhelper.GetMaxHpVal();

            QMhelper.SetupPlayer(Player.gameObject);

            ExpManager.Instance.Level = PlayerInfo.level;
            ExpManager.Instance.Exp   = PlayerInfo.exp;

            PlayerInfo.OperateCoin(0, true);

            var player = Player;

            // Init if CommonPlayer
            if (Player is CommonPlayer commonPlayer)
            {
                commonPlayer.SkillManager.Init(ref player, ref PlayerInfo.skillPack);

                foreach (var weaponRes in PlayerInfo.weapons.Select(data =>
                                                                    Resources.LoadAsync <Weapon>("Prefabs/Weapons/" + data.weaponName + "/" + data.weaponName)))
                {
                    weaponRes.completed += operation =>
                    {
                        commonPlayer.EquipWeapon((Weapon)weaponRes.asset, true);
                        Debug.Log("LoadDone");
                    };
                }
            }

            PixelCameraFollower.m_Target = Player.transform;

            // 设置小地图
            if (miniPixelCameraFollower != null)
            {
                miniPixelCameraFollower.m_Target = Player.transform;
            }

            DontDestroyOnLoad(playerGo);
        }