using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; /* PK模式的游戏界面 */ public class PKGameView : MonoBehaviour { [SerializeField] Text[] scoreTexts; PKGameMode pKGameMode; PKGameMode_OnlinePK pKGameMode_OnlinePK; int currentPlayerIndex = -1; string[] numCNs = {"", "第一局", "第二局", "第三局", "第四局", "第五局", "第六局"}; string[] numENs = {"", "1st leg", "2st leg", "3st leg", "4st leg", "5st leg", "6st leg"}; public static PKGameView ins; void Start() { ins = this; InitPKGameMode(); RenderPlayerInfo(); } void OnDestroy() { if (ins == this) ins = null; } void InitPKGameMode() { if (GlobalData.pkMatchType == PKMatchType.LocalPK) { pKGameMode = (PKGameMode) GameMgr.ins.gameMode; } else if (GlobalData.pkMatchType == PKMatchType.OnlinePK) { pKGameMode_OnlinePK = (PKGameMode_OnlinePK) GameMgr.ins.gameMode; } } void RenderPlayerInfo() { if (GlobalData.pkMatchType == PKMatchType.LocalPK) { RenderPlayerInfo_LockPK(1, PKGameMode.playerRoleIDs[0]); RenderPlayerInfo_LockPK(2, PKGameMode.playerRoleIDs[1]); } else if (GlobalData.pkMatchType == PKMatchType.OnlinePK) { if (GlobalData.matchPlayerInfos != null) { RenderPlayerInfo_OnlinePK(1, GlobalData.matchPlayerInfos[0].avatarID, GlobalData.matchPlayerInfos[0].avatarUrl, GlobalData.matchPlayerInfos[0].nickname); RenderPlayerInfo_OnlinePK(2, GlobalData.matchPlayerInfos[1].avatarID, GlobalData.matchPlayerInfos[1].avatarUrl, GlobalData.matchPlayerInfos[1].nickname); } } } void RenderPlayerInfo_LockPK(int posNum, int roleID) { string nickName = RoleMgr.GetRoleInfo(roleID, this.transform.Find("TotalScore/Avatar" + posNum + "/Sprite").GetComponent()); //this.transform.Find("TotalScore/Name" + posNum).GetComponent().text = nickName; TextEllipsis.SetTextWithEllipsis(transform.Find("TotalScore/Name" + posNum).GetComponent(), nickName); } void RenderPlayerInfo_OnlinePK(int posNum, int avatarID, string avatarUrl, string nickname) { RoleMgr.SetAvatarToImage( this.transform.Find("TotalScore/Avatar" + posNum + "/Sprite").GetComponent(), avatarID, avatarUrl ); //this.transform.Find("TotalScore/Name" + posNum).GetComponent().text = nickname; TextEllipsis.SetTextWithEllipsis(transform.Find("TotalScore/Name" + posNum).GetComponent(), nickname); } void Update() { if (GlobalData.pkMatchType == PKMatchType.LocalPK) { UpdateWhenLocalPK(); } else if (GlobalData.pkMatchType == PKMatchType.OnlinePK) { UpdateWhenOnlinePK(); } } void UpdateWhenLocalPK() { scoreTexts[0].text = TextAutoLanguage2.GetLanguage() == LanguageEnum.Chinese ? numCNs[pKGameMode.round] : numENs[pKGameMode.round]; scoreTexts[1].text = pKGameMode.currentScores[0].ToString($"f{CommonConfig.ringsPrecision}"); scoreTexts[2].text = pKGameMode.currentScores[1].ToString($"f{CommonConfig.ringsPrecision}"); scoreTexts[3].text = pKGameMode.totalScores[0] + " : " + pKGameMode.totalScores[1]; if (currentPlayerIndex != pKGameMode.currentPlayerIndex) { currentPlayerIndex = pKGameMode.currentPlayerIndex; string nickName = RoleMgr.GetRoleInfo(PKGameMode.playerRoleIDs[currentPlayerIndex], this.transform.Find("CurrentPlayer/Avatar").GetComponent()); //this.transform.Find("CurrentPlayer/Name").GetComponent().text = nickName; TextEllipsis.SetTextWithEllipsis(transform.Find("CurrentPlayer/Name").GetComponent(), nickName); } if (currentPlayerIndex == pKGameMode.currentPlayerIndex) { this.transform.Find("CurrentPlayer/Progress").GetComponent().fillAmount = pKGameMode.singleShootReadyTime / pKGameMode.singleShootReadyMaxTime; this.transform.Find("CurrentPlayer/Time").GetComponent().text = pKGameMode.GetTimeStr(); } } void UpdateWhenOnlinePK() { scoreTexts[0].text = TextAutoLanguage2.GetLanguage() == LanguageEnum.Chinese ? numCNs[pKGameMode_OnlinePK.gameLogic.round] : numENs[pKGameMode_OnlinePK.gameLogic.round]; scoreTexts[1].text = pKGameMode_OnlinePK.gameLogic.currentScores[0].ToString($"f{CommonConfig.ringsPrecision}"); scoreTexts[2].text = pKGameMode_OnlinePK.gameLogic.currentScores[1].ToString($"f{CommonConfig.ringsPrecision}"); scoreTexts[3].text = pKGameMode_OnlinePK.gameLogic.totalScores[0] + " : " + pKGameMode_OnlinePK.gameLogic.totalScores[1]; if (currentPlayerIndex != pKGameMode_OnlinePK.gameLogic.currentPlayerIndex) { currentPlayerIndex = pKGameMode_OnlinePK.gameLogic.currentPlayerIndex; if (GlobalData.matchPlayerInfos != null) { int avatarID = GlobalData.matchPlayerInfos[currentPlayerIndex].avatarID; string avatarUrl = GlobalData.matchPlayerInfos[currentPlayerIndex].avatarUrl; string nickName = GlobalData.matchPlayerInfos[currentPlayerIndex].nickname; RoleMgr.SetAvatarToImage( this.transform.Find("CurrentPlayer/Avatar").GetComponent(), avatarID, avatarUrl ); //this.transform.Find("CurrentPlayer/Name").GetComponent().text = nickName; TextEllipsis.SetTextWithEllipsis(transform.Find("CurrentPlayer/Name").GetComponent(), nickName); } } if (currentPlayerIndex == pKGameMode_OnlinePK.gameLogic.currentPlayerIndex) { this.transform.Find("CurrentPlayer/Progress").GetComponent().fillAmount = pKGameMode_OnlinePK.gameLogic.singleShootReadyTime / pKGameMode_OnlinePK.gameLogic.singleShootReadyMaxTime; this.transform.Find("CurrentPlayer/Time").GetComponent().text = TimeUtil.GetTimeStr(pKGameMode_OnlinePK.gameLogic.singleShootReadyTime); } } }