//系统初始化 private void Init() { //服务模块初始化 NetSvc net = GetComponent <NetSvc>(); net.InitSvc(); ResSvc res = GetComponent <ResSvc>(); res.InitSvc(); AudioSvc audio = GetComponent <AudioSvc>(); audio.InitSvc(); TimeSys time = GetComponent <TimeSys>(); time.InitSvc(); //业务系统初始化 LoginSys login = GetComponent <LoginSys>(); login.InitSys(); MainCitySys mainCity = GetComponent <MainCitySys>(); mainCity.InitSys(); TaskSys taskSys = GetComponent <TaskSys>(); taskSys.InitSys(); FuBenSys fuBenSys = GetComponent <FuBenSys>(); fuBenSys.InitSys(); BattleSys battleSys = GetComponent <BattleSys>(); battleSys.InitSys(); //进入登录场景并加载相应的UI login.EnterLogin(); }
public override void InitSys() { base.InitSys(); instance = this; }
public override void InitSys() { base.InitSys(); Instance = this; PECommon.Log("Init BattleSys..."); }
public virtual void StartFunction() { parent = GameCanvasScript.instance.gameObject; boardUI = GameCanvasScript.instance.transform; battlesys = BattleSys.instance; }
private void InitPanel() { BattleSys.ResetPlayerBattleShip(); InitEnergy(); GeneratePlayerShipListView(); }
private IEnumerator CastSkill(proto.UseSkill useSkill) { Skill skill = GetSkill(useSkill.partid); if (skill == null) { Debug.Log("skill is null"); yield break; } ShowCast(skill); ClientSkill clientSkill = BattleSys.GetCommanderShip().GetSkillById(useSkill.skillid); // 范围攻击,只生成一个子弹 if (skill.partType == SpellType.AOE) { List <BulletTarget> targetList = new List <BulletTarget>(); for (int i = 0; i < useSkill.fireinfolist_size(); i++) { proto.PartFireInfo info = useSkill.fireinfolist(i); TeamDisplay target = BattleSceneDisplayManager.Instance.GetTeamDisplay(info.targetid); if (target == null) { continue; } BulletTarget bulletTarget = new BulletTarget(); bulletTarget.delayFrame = info.delayframe; bulletTarget.Target = target; targetList.Add(bulletTarget); } ClientParts parts = Team_.GetPartsByID(skill.partID); float x = (float)useSkill.posx / 10000f; float y = (float)useSkill.posy / 10000f; float z = (float)useSkill.posz / 10000f; Vector3 position = new Vector3(x, y, z); ShowBullet(parts, targetList, skill.partType, skill.attackPoint, skill.bulletPath, skill.hitEffect, position, clientSkill); } // 个体攻击,每个对象都生成子弹 else { for (int i = 0; i < useSkill.fireinfolist_size(); i++) { proto.PartFireInfo info = useSkill.fireinfolist(i); TeamDisplay target = BattleSceneDisplayManager.Instance.GetTeamDisplay(info.targetid); if (target == null) { continue; } List <BulletTarget> targetList = new List <BulletTarget>(); BulletTarget bulletTarget = new BulletTarget(); bulletTarget.delayFrame = info.delayframe; bulletTarget.Target = target; targetList.Add(bulletTarget); ClientParts parts = Team_.GetPartsByID(skill.partID); ShowBullet(parts, targetList, skill.partType, skill.attackPoint, skill.bulletPath, skill.hitEffect, Vector3.zero, clientSkill); } } yield return(new WaitForSeconds(1.2f)); for (int i = 0; i < SingEffectList_.Count; i++) { if (SingEffectList_[i] == null) { continue; } Destroy(SingEffectList_[i]); } SingEffectList_.Clear(); }
void Start() { if (debugGame) { numberOfPlayers = 6; for (int i = 0; i < numberOfPlayers; i++) { playerclass[i] = playerClass.warrior; } } if (!debugGame) { for (int i = 0; i < numberOfPlayers; i++) { if (SingletonScript.playerClasses[i] == 0) { playerclass[i] = playerClass.warrior; } if (SingletonScript.playerClasses[i] == 1) { playerclass[i] = playerClass.mage; } if (SingletonScript.playerClasses[i] == 2) { playerclass[i] = playerClass.rogue; } } } //battlesys = GetComponent<BattleSys>(); battlesys = BattleSys.instance; battlesys.maxPlayers = numberOfPlayers; for (int i = 0; i < numberOfPlayers; i++) { if (i == 0) { col = "red"; } if (i == 1) { col = "blue"; } if (i == 2) { col = "yellow"; } if (i == 3) { col = "green"; } if (i == 4) { col = "white"; } if (i == 5) { col = "purple"; } PlayerScript player = Instantiate(playerType, new Vector3(-4.5f - (float)i, 0.1f, 4.5f), Quaternion.Euler(90.0f, 0.0f, 180.0f)); player.boardPosition = 0; battlesys.players[i] = player; switch (playerclass[i]) { case playerClass.warrior: createWarrior(ref player); break; case playerClass.rogue: createRogue(ref player); break; case playerClass.mage: createMage(ref player); break; } player.currentHealth = player.maxHealth.Value(); player.gold = 10; player.gamename = col; player.transform.SetParent(pos.transform.GetChild(0)); } }
/// <summary> /// 布阵相机协程 /// </summary> /// <returns></returns> private IEnumerator DeployCameraThread() { // 相机开始移动 //yield return new WaitForSeconds( 2f ); MainCamera_.transform.position = Vector3.zero; MainCamera_.transform.localEulerAngles = Vector3.zero; // 相机要指向的位置缓存 int firstID = 30000; int secondID = 40000; int thirdID = 60000; Dictionary <int, Vector3> posList = new Dictionary <int, Vector3>(); int shipCount = BattleSys.GetShipCount(false); for (int i = 0; i < shipCount; i++) { ClientShip cs = BattleSys.GetShipByIndex(false, i); if (cs.Reference.id == firstID || cs.Reference.id == secondID || cs.Reference.id == thirdID) { if (!posList.ContainsKey(cs.Reference.id)) { posList.Add(cs.Reference.id, cs.Position); } } } Animator animator = MainCamera.AddComponent <Animator>(); animator.runtimeAnimatorController = Resources.Load("Camera/camera_control") as RuntimeAnimatorController; Vector3 pos; posList.TryGetValue(firstID, out pos); MainCamera_.transform.position = pos; MainCamera.transform.position = new Vector3(29.3f, 19.9f, -40.8f); MainCamera.transform.localEulerAngles = new Vector3(15, 315, 0); animator.SetTrigger("DeployCameraStep01"); yield return(new WaitForSeconds(2.3f)); posList.TryGetValue(secondID, out pos); MainCamera_.transform.position = pos; MainCamera.transform.position = new Vector3(38.3f, 4.3f, 49.7f); MainCamera.transform.localEulerAngles = new Vector3(-2.3f, 238.54f, 0); animator.SetTrigger("DeployCameraStep02"); yield return(new WaitForSeconds(3.51f)); posList.TryGetValue(thirdID, out pos); MainCamera_.transform.position = pos; MainCamera.transform.position = new Vector3(46.8f, 8.1f, -9.7f); MainCamera.transform.localEulerAngles = new Vector3(0, 258, 0); animator.SetTrigger("DeployCameraStep03"); yield return(new WaitForSeconds(3.2f)); // 显示敌人指挥中心信息 StartCoroutine(PlayEffectOfMainEnemy(pos)); yield return(new WaitForSeconds(2.1f)); posList.Clear(); // 得到相机和边线的z值差 proto.BattlefieldReference reference = GlobalConfig.GetBattlefieldReferenceByID(BattleSys.NowMapID); if (reference == null) { yield break; } // 战场长度 float length = reference.basearea_len + reference.deptharea_len + reference.deployarea_len; Vector3 position = new Vector3(DeployOriginPositionX, DeployOriginPositionY, -length - 23.8f); Vector3 angle = new Vector3(DeployOriginRotationX, DeployOriginRotationY, DeployOriginRotationZ); // 初始化基地区域相机属性 CameraInfo info = GetCameraInfo(CameraStatusType.DeployMoveToBase); info.position = position + new Vector3(0, 0, length - reference.basearea_len / 2); info.angles = angle; // 初始化布阵区域相机属性 info = GetCameraInfo(CameraStatusType.DeployMoveToDeploy); info.position = position; info.angles = angle; // 设置相机位置和旋转 MainCamera.transform.position = Vector3.zero; MainCamera.transform.localEulerAngles = Vector3.zero; MainCamera_.transform.position = position; MainCamera_.transform.localEulerAngles = angle; animator.SetTrigger("DeployCameraStep04"); yield return(new WaitForSeconds(2)); Destroy(animator); // 移动完毕,修改模式为可操作模式 SetCameraType(CameraStatusType.Deploy); // 显示布阵界面 UIManager.ShowPanel <DeployPanel>(); UIManager.ShowPanel <DeployCameraControl>(); // 开启相机线程 StartCoroutine(CameraThread(null)); }
private void Awake() { instance = this; }