override public void OnEnter(MatchState lastState) { if (m_match.m_needTipOff) { TipOffPos tipOffPos = GameSystem.Instance.MatchPointsConfig.TipOffPos; int homeCnt = m_match.m_homeTeam.GetMemberCount(); for (int idx = 0; idx != homeCnt; idx++) { IM.Transform trOffensePos = tipOffPos.offenses_transform[idx]; IM.Transform trDefensePos = tipOffPos.defenses_transform[idx]; Player homePlayer = m_match.m_homeTeam.members[idx]; if (homePlayer != null) { homePlayer.position = trOffensePos.position; homePlayer.rotation = trOffensePos.rotation; } Player awayPlayer = m_match.m_awayTeam.members[idx]; if (awayPlayer != null) { awayPlayer.position = trDefensePos.position; awayPlayer.rotation = trDefensePos.rotation; } } m_match.m_needTipOff = false; } if (m_match.m_cam != null) { m_match.m_cam.m_Zoom.ReleaseZoom(); } foreach (Player player in GameSystem.Instance.mClient.mPlayerManager) { player.m_enableAction = false; player.m_enableMovement = false; player.m_bMovedWithBall = false; if (player.m_catchHelper != null) { player.m_catchHelper.enabled = true; } if (player.m_pickupDetector != null) { player.m_enablePickupDetector = true; } if (player.m_AOD != null) { player.m_AOD.visible = false; } player.m_toSkillInstance = null; player.m_stamina.ResetStamina(); player.m_StateMachine.SetState(PlayerState.State.eStand); } if (m_goBeginUI == null) { m_goBeginUI = GameSystem.Instance.mClient.mUIManager.CreateUI("UIBeginCounter"); } if (m_goBeginUI == null) { Debug.Log("Error -- can not find ui resource " + "UIBeginCounter"); return; } Animation anim = m_goBeginUI.GetComponentInChildren <Animation>(); anim.Stop(); anim.Play("counter"); UBasketball ball = m_match.mCurScene.mBall; if (ball != null && ball.m_owner != null && m_match.m_uiMatch != null && m_match.EnableCounter24()) { m_match.m_uiMatch.ShowCounter(true, ball.m_owner.m_team.m_side == Team.Side.eHome); m_match.m_count24TimeStop = true; } ball.Reset(); IM.Number x1 = m_match.m_homeTeam.members[0].position.x; IM.Number x2 = m_match.m_awayTeam.members[0].position.x; IM.Number z = m_match.m_homeTeam.members[0].position.z; ball.SetInitPos(new IM.Vector3((x1 + x2) * IM.Number.half, fBallInitHeight, z)); ball.m_ballState = BallState.eNone; if (m_match.m_uiMatch != null && m_match.EnableCounter24()) { m_match.m_uiMatch.ShowCounter(true, true); m_match.m_gameMatchCountStop = true; m_match.m_count24TimeStop = true; } if (m_match.EnableEnhanceAttr()) { m_match.EnhanceAttr(); } mTimer = new GameUtils.Timer(new IM.Number(3), _OnCounterDone, 1); mTimerSound = new GameUtils.Timer(new IM.Number(3), PlaySound, 1); m_match.m_homeTeam.m_role = GameMatch.MatchRole.eNone; m_match.m_awayTeam.m_role = GameMatch.MatchRole.eNone; m_match.m_ruler.m_toCheckBallTeam = null; }
override public void OnEnter(MatchState lastState) { base.OnEnter(lastState); if (m_match.m_bOverTime) { m_match.m_gameMathCountEnable = false; } m_match.CreateUI(); m_match.ResetPlayerPos(); m_match.m_cam.Positioning(true); m_match.m_cam.m_PositionImmediately = false; foreach (Player player in GameSystem.Instance.mClient.mPlayerManager) { player.m_enableAction = false; player.m_enableMovement = false; player.m_enablePickupDetector = false; player.Show(true); } m_match.m_cam.m_moveSpeed = m_match.m_cam.m_CloseUpRestoreSpeed; m_match.m_cam.m_Zoom.SetZoom(m_match.mainRole.gameObject.transform, ZoomType.ePlayerCloseUp); if (m_match.m_uiMatch != null) { m_match.m_gameMatchCountStop = true; m_match.m_count24TimeStop = true; } Team oppoTeam = m_match.mainRole.m_team.m_side == Team.Side.eAway ? m_match.m_homeTeam : m_match.m_awayTeam; foreach (Player member in oppoTeam.members) { if (member.model != null) { member.model.EnableGrey(); } } Color yellow = new Color(1f, 252f / 255, 10f / 255, 1); m_match.mainRole.ShowIndicator(yellow, true); //if (m_match.m_mainRole.m_inputDispatcher == null && m_match.GetMatchType() != GameMatch.Type.e3AIOn3AI ) // m_match.m_mainRole.m_inputDispatcher = new InputDispatcher (m_match, m_match.m_mainRole); //reset position if (m_match.m_needTipOff) { TipOffPos tipOffPos = GameSystem.Instance.MatchPointsConfig.TipOffPos; int homeCnt = m_match.m_homeTeam.GetMemberCount(); for (int idx = 0; idx != homeCnt; idx++) { IM.Transform trOffensePos = tipOffPos.offenses_transform[idx]; IM.Transform trDefensePos = tipOffPos.defenses_transform[idx]; Player homePlayer = m_match.m_homeTeam.members[idx]; if (homePlayer != null) { homePlayer.position = trOffensePos.position; homePlayer.rotation = trOffensePos.rotation; } Player awayPlayer = m_match.m_awayTeam.members[idx]; if (awayPlayer != null) { awayPlayer.position = trDefensePos.position; awayPlayer.rotation = trDefensePos.rotation; } } m_match.m_needTipOff = false; } if (m_match.m_bOverTime) { timer2 = new GameUtils.Timer(BEGIN_WAIT_TIME, () => m_stateMachine.SetState(State.eTipOff), 1); } else { timer1 = new GameUtils.Timer4View((float)BEGIN_WAIT_TIME, GameMsgSender.SendGameBegin, 1); } }