예제 #1
0
 private void Instance_OnPlayerUpdata(PlayerUpdata playerupdata)
 {
     if (playerupdata.HpUpdata > 0)
     {
         d.GetComponent <PlayerHp>().Hp = playerupdata.HpUpdata;
     }
     else
     {
         d.GetComponent <PlayerHp>().Hp = 0;
         NetWorkManage.Instance.SendMessage("playerDie:{\"playerDie\":0}");
         d.GetComponent <PlayerAnimation>().isDie = true;
         d.GetComponent <DataToServer>().enabled  = false;
         d.GetComponent <Player>().enabled        = false;
         Invoke("PlayerDie", 1.0f);
     }
 }
예제 #2
0
    public void HandleMessage(string message)
    {
        Debug.Log("HandleMessage:" + message);
        int    target  = message.IndexOf(":");
        string tag     = message.Substring(0, target);
        string content = message.Substring(target + 1);

        switch (tag)
        {
        case "register":
            if (OnRegisterResult != null)
            {
                OnRegisterResult(content);
            }
            break;

        case "login":

            if (OnLoginResult != null)
            {
                OnLoginResult(content);
            }

            break;

        case "createPlayer":

            RedayInfo redayinfo = GetData2 <RedayInfo>(content);

            if (OnCreatePlayer != null)
            {
                Debug.Log(content);
                OnCreatePlayer(redayinfo);
            }

            break;

        case "playerstatus":
            PlayerInfo player = GetData2 <PlayerInfo>(content);
            if (OnUpdataPlayer != null)
            {
                OnUpdataPlayer(player);
            }

            break;

        case "reday":
            if (content == "go!" && OnStartResult != null)
            {
                OnStartResult(content);
            }
            break;

        case "Tankstatus":
            Debug.Log(content);
            TankInfo tankinfo = GetData2 <TankInfo>(content);
            if (OnUpdateTank != null)
            {
                OnUpdateTank(tankinfo);
            }
            break;

        case "createEnemy":
            Debug.Log("收到创建");
            enemyInfo enemyInfo = GetData2 <enemyInfo>(content);
            if (OnCreateEnemy != null)
            {
                OnCreateEnemy(enemyInfo);
            }
            break;

        case "GamePass":
            if (content == "first")
            {
                if (OnGameCount != null)
                {
                    OnGameCount(content);
                }
                NetWorkManage.Instance.SendMessage("CreateEnemy:{\"enemy\":2}");
            }
            else if (content == "second")
            {
                if (OnGameCount != null)
                {
                    OnGameCount(content);
                }
                NetWorkManage.Instance.SendMessage("CreateEnemy:{\"enemy\":3}");
            }
            else
            {
                SceneManager.LoadScene("Scenes/win");
            }
            break;

        case "EnemyDie":
            EnemyDie enemydie = GetData2 <EnemyDie>(content);
            if (OnEnemyDie != null)
            {
                OnEnemyDie(enemydie);
            }
            break;

        case "EnemyBoom":
            EnemyDie enemyboom = GetData2 <EnemyDie>(content);
            if (OnEnemyBoom != null)
            {
                OnEnemyBoom(enemyboom);
            }
            break;

        case "PlayerUpdata":
            PlayerUpdata playerupdata = GetData2 <PlayerUpdata>(content);
            if (OnPlayerUpdata != null)
            {
                OnPlayerUpdata(playerupdata);
            }
            break;

        case "Enemytarget":
            NavMeshInfo navMeshInfo = GetData2 <NavMeshInfo>(content);
            if (OnWayPoint != null)
            {
                OnWayPoint(navMeshInfo);
            }
            break;

        case "MoneyUpdata":
            MoneyUpdata money = GetData2 <MoneyUpdata>(content);
            if (OnMoneyUpdata != null)
            {
                OnMoneyUpdata(money);
            }
            break;

        case "GameOver":
            SceneManager.LoadScene("Scenes/GameOver");
            break;

        default:
            break;
        }
    }