コード例 #1
0
    void Init()
    {
        m_timerDelay.stop = true;

        m_bZoomState = true;

        if (m_timerStay != null)
        {
            m_timerStay.stop = true;
            m_timerStay.Reset();
        }
        m_timerStay = new GameUtils.Timer4View(m_curZoomParam.m_fTimeZoomStay, ReleaseZoom, 1);

        float fDistToMoveZ = Mathf.Abs(m_zoomTarget.position.z - m_curZoomParam.m_fZDistToTarget - transform.position.z);

        float fZoomTime = fDistToMoveZ / m_curZoomParam.m_fZoomSpeed;

        float fDistToMoveY = Mathf.Abs(m_curZoomParam.m_fYDistToTarget - transform.position.y);

        m_fYSpeed = fDistToMoveY / fZoomTime;

        float fCurAngle = Vector3.Angle(Vector3.forward, transform.forward);

        m_fDeg = (m_curZoomParam.m_fTargetAngle - fCurAngle) / fZoomTime;
    }
コード例 #2
0
ファイル: Spark.cs プロジェクト: Avatarchik/LockStepDemo
    public SparkEffect(ISparkTarget target, float fInterval, int iCount = -1)
    {
        m_target          = target;
        m_sparkTimer      = new GameUtils.Timer4View(fInterval, _Spark, iCount);
        m_sparkTimer.stop = true;
        Shader shader = Shader.Find("Diffuse");

        m_matSpark = new Material(shader);
    }
コード例 #3
0
 private void TipWellDone()
 {
     step = Step.TipWellDone;
     match.ShowGuideTip();
     match.HideTipArrow();
     match.tip = practise.tips[4];
     match.ShowIconTip(true);
     match.mainRole.m_inputDispatcher.m_enable = false;
     timer = new GameUtils.Timer4View(2f, TipRequireIntro);
 }
コード例 #4
0
    public PlayerInfoVisualizer(Player owner)
    {
        m_owner     = owner;
        m_bWithBall = owner.m_bWithBall;

        m_timerHideName = new GameUtils.Timer4View(4f, OnTimerHideName, 1);

        if (m_resPlayerInfo == null)
        {
            m_resPlayerInfo = ResourceLoadManager.Instance.LoadPrefab("prefab/indicator/playerInfo");
        }

        m_goPlayerInfo = GameObject.Instantiate(m_resPlayerInfo) as GameObject;
        m_uiName       = GameUtils.FindChildRecursive(m_goPlayerInfo.transform, "Name").GetComponentInChildren <UILabel>();
        m_nameFadeAway = m_uiName.GetComponent <UITweener>();
        m_nameFadeAway.SetOnFinished(OnNameFadeAwayFinished);
        m_uiName.fontSize = 25;
        m_uiName.text     = owner.m_name;

        //if( owner.m_team != null )
        //	m_uiName.color = owner.m_team.m_side == Team.Side.eHome ? Color.red : Color.green;

        m_uiPosition            = GameUtils.FindChildRecursive(m_goPlayerInfo.transform, "Position").GetComponentInChildren <UISprite>();
        m_oriPositionPos        = m_uiPosition.transform.localPosition;
        m_uiPosition.spriteName = owner.m_position.ToString();
        OnNameFadeAwayFinished();

        GameUtils.SetLayerRecursive(m_goPlayerInfo.transform, LayerMask.NameToLayer("GUI"));

        m_goState       = new GameObject(owner.m_id + "_state");
        m_goState.layer = LayerMask.NameToLayer("GUI");

        GameObject state = new GameObject("sprite");

        state.layer                   = LayerMask.NameToLayer("GUI");
        state.transform.parent        = m_goState.transform;
        state.transform.localPosition = Vector3.zero;
        state.transform.localScale    = Vector3.one;

        m_uiState = NGUITools.AddSprite(state, m_uiPosition.atlas, "none");
        m_uiState.MakePixelPerfect();
        m_uiState.gameObject.transform.localScale = Vector3.one * 0.3f;

        m_uiStaminaBar = GameUtils.FindChildRecursive(m_goPlayerInfo.transform, "StaminaBar").GetComponent <UIStaminaBar>();
        if (m_uiStaminaBar != null)
        {
            m_uiStaminaBar.m_attachedPlayer = m_owner;
            m_uiStaminaBar.gameObject.SetActive(false);
        }

        CreateStrengthBar();
        ShowStrengthBar(false);
    }
コード例 #5
0
    public void SetZoom(Transform target, ZoomType type)
    {
        m_zoomTarget   = target;
        m_curZoomParam = m_zoomParam[(int)type];

        if (m_timerDelay != null)
        {
            m_timerDelay.stop = true;
            m_timerDelay.Reset();
        }
        m_timerDelay = new GameUtils.Timer4View(m_curZoomParam.m_fTimeDelay, Init, 1);
    }
コード例 #6
0
    public void PlaySound(MatchSoundEvent evt, bool loop = false)
    {
        MatchSound ms = GameSystem.Instance.matchSoundConfig.GetSounds(evt);

        if (ms == null)
        {
            Debug.Log("No sounds for event:" + evt);
            return;
        }

        if (ms.sounds.Count > 0)
        {
            MatchSound.Item sound = ms.sounds[UnityEngine.Random.Range(0, ms.sounds.Count)];
            //Debug.Log("Play sound, Event:" + evt + " Sound:" + sound.soundId);
            GameUtils.Timer4View timer = new GameUtils.Timer4View((float)sound.fLag,
                                                                  () =>
            {
                AudioClip clip = AudioManager.Instance.GetClip("Misc/" + sound.soundId);
                if (clip != null)
                {
                    AudioManager.Instance.PlaySound(clip, true, 1f, 1f, loop);
                }
                else
                {
                    Debug.LogWarning("Sound file " + sound + " not found");
                }
            }, 1);
            m_soundsToPlay.Add(timer);
            timer.stop = false;
        }

        if (ms.narrator_sounds.Count > 0)
        {
            MatchSound.Item sound = ms.narrator_sounds[UnityEngine.Random.Range(0, ms.narrator_sounds.Count)];
            //Debug.Log("Play narrator sound, Event:" + evt + " Sound:" + sound.soundId);
            GameUtils.Timer4View timer = new GameUtils.Timer4View((float)sound.fLag,
                                                                  () =>
            {
                AudioClip clip = AudioManager.Instance.GetClip("Misc/" + sound.soundId);
                if (clip != null)
                {
                    AudioManager.Instance.PlaySound(clip, true, 1f, 1f, loop);
                }
                else
                {
                    Debug.LogWarning("Sound file " + sound + " not found");
                }
            }, 1);
            m_soundsToPlay.Add(timer);
            timer.stop = false;
        }
    }
コード例 #7
0
 public void Update(float deltaTime)
 {
     //update sound timer
     for (int idx = m_soundsToPlay.Count - 1; idx >= 0; idx--)
     {
         GameUtils.Timer4View timer = m_soundsToPlay[idx];
         if (timer == null)
         {
             continue;
         }
         timer.Update(deltaTime);
         if (timer.stop)
         {
             m_soundsToPlay.RemoveAt(idx);
         }
     }
 }
コード例 #8
0
    public void Init()
    {
        if (initialized)
        {
            return;
        }
        prefabMask        = ResourceLoadManager.Instance.LoadPrefab("Prefab/GUI/GuideMask") as GameObject;
        prefabTip         = ResourceLoadManager.Instance.LoadPrefab("Prefab/GUI/GuideTip") as GameObject;
        prefabTapEffect   = ResourceLoadManager.Instance.LoadPrefab("Prefab/GUI/TapEffect") as GameObject;
        prefabArrowEffect = ResourceLoadManager.Instance.LoadPrefab("Prefab/GUI/ArrowEffect") as GameObject;
        prefabHalo        = ResourceLoadManager.Instance.LoadPrefab("Prefab/GUI/YellowHalo") as GameObject;
        prefabBlinkArea   = ResourceLoadManager.Instance.LoadPrefab("Prefab/GUI/BlinkArea") as GameObject;

        timerFinishStep      = new GameUtils.Timer4View(3f, EndCurStep);
        timerFinishStep.stop = true;

        initialized = true;
    }
コード例 #9
0
    override public void OnEnter(MatchState lastState)
    {
        m_goEffects.Clear();

        foreach (Player player in GameSystem.Instance.mClient.mPlayerManager)
        {
            //player.Show( !(m_match is GameMatch_PVP) );
            player.Show(true);
            player.m_applyLogicPostion = false;
            player.model.EnableGrey(false);
            //player.m_characterCtrl.enabled = false;

            player.m_enableAction = false;
            if (player.m_catchHelper != null)
            {
                player.m_catchHelper.enabled = false;
            }

            player.m_enablePickupDetector = false;
            player.m_enableMovement       = false;
            player.m_enableAction         = false;

            if (player.m_InfoVisualizer != null)
            {
                player.m_InfoVisualizer.SetActive(false);
            }

            player.HideIndicator();

            //set quality

            /*
             * PotientialEffect pe = GameSystem.Instance.PotientialEffectConfig.GetConfig(player.GetQuality());
             * if( pe == null )
             *      continue;
             * GameObject resEffect = ResourceLoadManager.Instance.LoadPrefab("prefab/effect/" + pe.resource);
             * if( resEffect == null )
             *      continue;
             * GameObject goEffect = GameObject.Instantiate(resEffect) as GameObject;
             * goEffect.transform.parent = player.m_goPlayer.transform;
             * goEffect.transform.localPosition = Vector3.zero;
             * goEffect.transform.localRotation = Quaternion.identity;
             *
             * m_goEffects.Add(goEffect);
             *
             * Animator animator = goEffect.GetComponent<Animator>();
             * if( animator == null )
             *      continue;
             * animator.SetBool("Flame" + pe.idx, true);
             */
        }

        if (m_match.m_uiMatch != null)
        {
            m_match.m_gameMatchCountStop = true;
            m_match.m_count24TimeStop    = true;
        }

        GameObject resOpening = ResourceLoadManager.Instance.LoadPrefab("Prefab/Camera/Opening");
        GameObject goOpening  = GameObject.Instantiate(resOpening) as GameObject;

        if (goOpening == null)
        {
            Debug.LogError("can not find opening prefab.");
        }

        m_trackPlayer.LoadTrack(goOpening);
        m_trackPlayer.Play();

        PlaySoundManager.Instance.PlaySound(MatchSoundEvent.Openning);

        m_timer      = new GameUtils.Timer4View(1f, OnTimer);
        m_timer.stop = false;
    }
コード例 #10
0
 public NetworkProfiler(NetworkConn server)
 {
     m_server    = server;
     m_timer     = new GameUtils.Timer4View(1f, _OnTimer);
     m_dataUsage = 0;
 }
コード例 #11
0
ファイル: UIMatch.cs プロジェクト: Avatarchik/LockStepDemo
    void Awake()
    {
        m_match = GameSystem.Instance.mClient.mCurMatch;

        leftNameLabel  = transform.FindChild("LeftName").GetComponent <UILabel>();
        rightNameLabel = transform.FindChild("RightName").GetComponent <UILabel>();
        bg             = transform.FindChild("Bg").GetComponent <UISprite>();
        leftScoreNode  = transform.FindChild("LeftScore");
        rightScoreNode = transform.FindChild("RightScore");
        timerNode      = transform.FindChild("TimerNode");

        GameObject prefab = ResourceLoadManager.Instance.LoadPrefab("Prefab/GUI/TimerBoard") as GameObject;

        timerBoard = CommonFunction.InstantiateObject(prefab, timerNode).GetComponent <TimerBoard>();
        timerBoard.backgroundVisible = false;

        prefab                 = ResourceLoadManager.Instance.LoadPrefab("Prefab/GUI/ScoreBoard") as GameObject;
        leftScoreBoard         = CommonFunction.InstantiateObject(prefab, leftScoreNode).GetComponent <ScoreBoard_new>();
        leftScoreBoard.isLeft  = true;
        rightScoreBoard        = CommonFunction.InstantiateObject(prefab, rightScoreNode).GetComponent <ScoreBoard_new>();
        rightScoreBoard.isLeft = false;

        mCounter24            = GameUtils.FindChildRecursive(transform, "TimeCounter24").GetComponent <UTimeCounter24>();
        m_match.m_count24Time = m_match.MAX_COUNT24_TIME;
        mCounter24.gameObject.SetActive(false);

        mCenterAnchor = GameUtils.FindChildRecursive(transform, "Anchor_Center");
        mTopAnchor    = GameUtils.FindChildRecursive(transform, "Anchor_Top");

        leftBall  = transform.FindChild("LeftBall").gameObject;
        rightBall = transform.FindChild("RightBall").gameObject;

        m_leftNode  = transform.Find("LeftNode");
        m_rightNode = transform.Find("RightNode");

        prefab      = ResourceLoadManager.Instance.LoadPrefab("Prefab/GUI/msg/Foul_24") as GameObject;
        m_goFoulMsg = GameObject.Instantiate(prefab) as GameObject;
        m_goFoulMsg.transform.parent = mCenterAnchor;
        m_goFoulMsg.SetActive(false);

        prefab           = ResourceLoadManager.Instance.LoadPrefab("Prefab/GUI/msg/Msg_CheckBall") as GameObject;
        m_goCheckBallMsg = GameObject.Instantiate(prefab) as GameObject;
        m_goCheckBallMsg.transform.parent = mCenterAnchor;
        m_goCheckBallMsg.SetActive(false);

        prefab = ResourceLoadManager.Instance.LoadPrefab("Prefab/GUI/ButtonPause") as GameObject;
        Transform buttonParent = transform.FindChild("ButtonPause");

        goExit = CommonFunction.InstantiateObject(prefab, buttonParent);
        UIEventListener.Get(goExit).onClick = OnExit;

        goShortMsgFolder = transform.FindChild("ButtonArrow").gameObject;
        goShortMsgFolder.AddComponent <TweenRotation>();

        UIEventListener.Get(goShortMsgFolder).onClick = OnClickMsg;

        goCustomMsg = transform.FindChild("LeftButton/ButtonTalk").gameObject;
        UIEventListener.Get(goCustomMsg).onClick = OnClickMsg;

        goMsg1 = transform.FindChild("LeftButton/ButtonMark/Icon").gameObject;
        UIEventListener.Get(goMsg1.transform.parent.gameObject).onClick = OnClickMsg;

        goMsg2 = transform.FindChild("LeftButton/ButtonExchange/Icon").gameObject;
        UIEventListener.Get(goMsg2.transform.parent.gameObject).onClick = OnClickMsg;

        GameObject goGrid = transform.FindChild("LeftButton/Grid").gameObject;

        uiGridCustomMsgs = goGrid.GetComponent <UIGrid>();
        GameObject sampleBtn = uiGridCustomMsgs.GetChild(0).gameObject;
        GameObject goBtnItem = GameObject.Instantiate(sampleBtn) as GameObject;

        m_btnCustomItem = goBtnItem.GetComponent <UIButton>();
        goBtnItem.SetActive(false);
        sampleBtn.SetActive(false);

        m_msgHomeBlobs = transform.FindChild("HomeBlobs").GetComponent <UIMatchMessageBlob>();
        m_msgAwayBlobs = transform.FindChild("AwayBlobs").GetComponent <UIMatchMessageBlob>();

        m_sprWifi = transform.FindChild("RightButton/ButtonWifi/Icon").GetComponent <UISprite>();
        m_labWifi = transform.FindChild("RightButton/ButtonWifi/Num").GetComponent <UILabel>();


        m_curMatchMsgCond = 0;
        m_bShowCustomMsg  = false;
        m_bShowAll        = true;


        GameMatch.LeagueType leagueType = m_match.GetConfig().leagueType;
        if (leagueType == GameMatch.LeagueType.eRegular1V1 || leagueType == GameMatch.LeagueType.ePVP || leagueType == GameMatch.LeagueType.eQualifyingNew ||
            leagueType == GameMatch.LeagueType.eQualifyingNewer ||
            leagueType == GameMatch.LeagueType.eQualifyingNewerAI ||
            leagueType == GameMatch.LeagueType.eLadderAI
            )
        {
            m_pingTime = new GameUtils.Timer4View(2f, OnPing);
        }
        else
        {
            m_bShowAll = false;
            goShortMsgFolder.SetActive(false);
            transform.FindChild("RightButton").gameObject.SetActive(false);
        }

        m_matchScoreEffect = gameObject.AddComponent <UIMatchScoreEffect>();

        OnPing();
    }
コード例 #12
0
 public void SetDuration(float fDuration)
 {
     m_lifeTime = new GameUtils.Timer4View(fDuration, OnTimer, 1);
 }
コード例 #13
0
    override public void OnEnter(MatchState lastState)
    {
        base.OnEnter(lastState);

        if (m_match.m_uiMatch != null)
        {
            m_match.m_count24TimeStop    = false;
            m_match.m_gameMatchCountStop = false;
        }

        foreach (Player player in GameSystem.Instance.mClient.mPlayerManager)
        {
            player.m_enableAction         = false;
            player.m_enableMovement       = false;
            player.m_enablePickupDetector = false;
            player.Hide();
        }

        if (m_match.GetMatchType() != GameMatch.Type.eBullFight &&
            m_match.GetMatchType() != GameMatch.Type.eGrabPoint &&
            m_match.GetMatchType() != GameMatch.Type.eGrabZone &&
            m_match.GetMatchType() != GameMatch.Type.eMassBall &&
            m_match.GetMatchType() != GameMatch.Type.eUltimate21 &&
            m_match.GetMatchType() != GameMatch.Type.eBlockStorm &&
            m_match.GetMatchType() != GameMatch.Type.eReboundStorm)
        {
            //m_stateMachine.SetState(MatchState.State.ePlayerCloseUp);
            m_stateMachine.SetState(MatchState.State.eOpening);
            return;
        }

        playerPrefName = "DontPromptRule_" + MainPlayer.Instance.AccountID + "_" + m_match.m_config.extra_info;
        bool dontPrompt = (PlayerPrefs.GetInt(playerPrefName) != 0);

        if (!dontPrompt)
        {
            panel = GameSystem.Instance.mClient.mUIManager.CreateUI("Prefab/GUI/MatchRule");
            NGUITools.BringForward(panel);

            //GameObject goRule = panel.transform.FindChild("Window/Rule").gameObject;
            GameObject   goRulePane = panel.transform.FindChild("Window/Rule/RulePane").gameObject;
            string       total      = CommonFunction.GetConstString("MATCH_RULE_" + m_match.GetMatchType());
            string[]     rules      = total.Split('\n');
            GameObject[] goItem     = new GameObject[rules.Length];
            goItem[0] = goRulePane.transform.FindChild("1").gameObject;
            GameObject last = null;
            for (int i = 0; i < rules.Length; ++i)
            {
                if (i >= 1)
                {
                    goItem[i] = CommonFunction.InstantiateObject(goItem[0], goRulePane.transform);
                }
                goItem[i].transform.FindChild("Round/Num").GetComponent <UILabel>().text = (i + 1).ToString();
                goItem[i].transform.FindChild("Label").GetComponent <UILabel>().text     = rules[i];
                UIWidget widget = goItem[i].transform.GetComponent <UIWidget>();
                if (last != null)
                {
                    widget.topAnchor.target = last.transform;
                    widget.topAnchor.Set(0, -12);
                    widget.ResetAnchors();
                }
                last = widget.gameObject;
            }
            goRulePane.transform.FindChild("Title").GetComponent <UILabel>().text =
                CommonFunction.GetConstString("MATCH_TYPE_NAME_" + m_match.GetMatchType().ToString());

            //UISprite title = panel.transform.FindChild("Window/Title").GetComponent<UISprite>();
            //title.spriteName = "gameInterface_ozd_" + m_match.GetMatchType().ToString();
            //title.MakePixelPerfect();
            UIEventListener.Get(panel.transform.FindChild("Window/OK").gameObject).onClick += OnOKClick;

            timer = new GameUtils.Timer4View(GameSystem.Instance.CommonConfig.GetFloat("gRuleDisplayTime"), EndShowRule);
            if (GameSystem.Instance.mClient.pause)
            {
                NGUITools.SetActive(panel.gameObject, false);
                timer.stop = true;
            }
        }
        else
        {
            if (m_match.GetMatchType() == GameMatch.Type.eUltimate21)
            {
                m_stateMachine.SetState(MatchState.State.eSlotMachineUltimate21);
            }
            else
            {
                m_stateMachine.SetState(MatchState.State.eOpening);
            }
            //m_stateMachine.SetState(MatchState.State.ePlayerCloseUp);
        }

        if (m_match.m_uiMatch != null)
        {
            m_match.m_gameMatchCountStop = true;
            m_match.m_count24TimeStop    = true;
        }
    }
コード例 #14
0
    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);
        }
    }
コード例 #15
0
 void HandleMatchBegin(Pack pack)
 {
     m_matchBeginPack = pack;
     m_wait           = new GameUtils.Timer4View(3f, OnHandleMatchBeginTimer, 0);
 }