using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using DG.Tweening; /* PK模式的轮换选手的准备界面 */ public class PKGameReadyView_Challenge : MonoBehaviour { GameMode gameMode; [System.NonSerialized] public int currentPlayerIndex = 0; bool isDiscarded = false;//丢弃的 static PKGameReadyView_Challenge ins; void Awake() { if (ins) { ins.isDiscarded = true; Destroy(ins.gameObject); } ins = this; GameMgr.ins.addLockerForGamePause(this); } void Start() { if (isDiscarded) return; gameMode = GameMgr.ins.gameMode; GameObject.FindObjectOfType().Hide(); RenderPlayerInfo(); RunAnimation(); } void RenderPlayerInfo() { if (GlobalData.pkMatchType == PKMatchType.LocalPK) { int curPlayerIndex = ((ChallengeGameModeLocalPK) gameMode).GetCurrentPlayIndex(); string nickName = RoleMgr.GetRoleInfo(GlobalData.localPK_playerRoleIDs[curPlayerIndex], this.transform.Find("Panel/Avatar/Sprite").GetComponent(), this); this.transform.Find("Panel/Name").GetComponent().text = nickName; } else if (GlobalData.pkMatchType == PKMatchType.OnlinePK) { int curPlayerIndex = ((ChallengeGameModeLocalPK) gameMode).GetCurrentPlayIndex(); int avatarID = GlobalData.matchPlayerInfos[curPlayerIndex].avatarID; string avatarUrl = GlobalData.matchPlayerInfos[curPlayerIndex].avatarUrl; string nickname = GlobalData.matchPlayerInfos[curPlayerIndex].nickname; RoleMgr.SetAvatarToImage( this.transform.Find("Panel/Avatar/Sprite").GetComponent(), this, avatarID, avatarUrl ); this.transform.Find("Panel/Name").GetComponent().text = nickname; } } void RunAnimation() { Image mask = this.transform.Find("Mask").GetComponent(); Transform panel = this.transform.Find("Panel"); Sequence seq = DOTween.Sequence(); seq.AppendCallback(delegate() { mask.gameObject.SetActive(true); }); seq.Append(mask.DOFade(1, 0.5f)); seq.AppendCallback(delegate() { panel.gameObject.SetActive(true); }); seq.Append(mask.DOFade(0, 1f)); seq.AppendInterval(1f); seq.Append(panel.DOScaleX(0, 0.4f)); seq.AppendCallback(delegate() { Destroy(this.gameObject); }); seq.SetUpdate(true); } void OnDestroy() { if (ins == this) ins = null; if (GameMgr.ins) GameMgr.ins.removeLockerForGamePause(this); if (isDiscarded) return; if (ArmBow.ins) ArmBow.ins.Show(); gameMode.UnbanBowReady(); } }