/// <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); }
/// <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); }