コード例 #1
0
 // Use this for initialization
 void Start()
 {
     anim                      = GetComponent <Animator>();
     controller                = GetComponent <CharacterController>();
     playerMovement            = GetComponent <PlayerMov>();
     playerStats               = GetComponent <PlayerStats>();
     playerStats.CurrentHealth = playerStats.MaxHealth;
     pAnims                    = GetComponent <playerAnim>();
 }
コード例 #2
0
    IEnumerator listener()
    {
        string msg;

        while (contli)
        {
            msg = w.RecvString();
            if (msg != null)
            {
                //Debug.Log("raw: " + msg);
                mess msgo = JsonUtility.FromJson <mess>(msg);
                switch (msgo.msgtype)
                {
                case "new connection":
                    newCon nc = JsonUtility.FromJson <newCon>(msgo.content);
                    SocketNetworkManager.id = nc.yourid;
                    newPly n = new newPly();
                    n.theirid      = id;
                    newplayers[id] = n;
                    break;

                case "new player":
                    newPly np = JsonUtility.FromJson <newPly>(msgo.content);
                    newplayers[np.theirid] = np;
                    numberofplayers++;
                    if (NewPlayerHandle != null)
                    {
                        StartCoroutine(NewPlayerHandle(np));
                    }
                    break;

                case "create lobby":
                    creLobby crel = JsonUtility.FromJson <creLobby>(msgo.content);
                    if (CreateLobbyHandle != null)
                    {
                        StartCoroutine(CreateLobbyHandle(crel.lobbyid, crel.playernum));
                    }
                    break;

                case "join lobby":
                    joinLobby jnl = JsonUtility.FromJson <joinLobby>(msgo.content);
                    if (JoinLobbyHandle != null)
                    {
                        StartCoroutine(JoinLobbyHandle(jnl.lobbyid, jnl.playernum, jnl.ret));
                    }
                    break;

                case "select class":
                    selClass scl = JsonUtility.FromJson <selClass>(msgo.content);
                    if (SelectClassHandle != null)
                    {
                        StartCoroutine(SelectClassHandle(scl.ret, scl.plclass));
                    }
                    break;

                case "update class":
                    updClass ucl = JsonUtility.FromJson <updClass>(msgo.content);
                    if (UpdateClassHandle != null)
                    {
                        StartCoroutine(UpdateClassHandle(ucl.player, ucl.plclass));
                    }
                    break;

                case "get lobbies":
                    lobbyList ll = JsonUtility.FromJson <lobbyList>(msgo.content);
                    if (GetLobbiesHandle != null)
                    {
                        StartCoroutine(GetLobbiesHandle(ll.lobbiesInfo));
                    }
                    break;

                case "general message":
                    genMess gms = JsonUtility.FromJson <genMess>(msgo.content);
                    switch (gms.ct)
                    {
                    case "playerposition":         // player position
                        playerPos pp = JsonUtility.FromJson <playerPos>(gms.content);
                        if (UpdateOtherPlayerPos != null)
                        {
                            UpdateOtherPlayerPos(gms.sender, pp.x, pp.y, pp.rx, pp.ry);
                        }
                        break;

                    case "startgame":         // start game
                        if (StartGameHandle != null)
                        {
                            StartCoroutine(StartGameHandle());
                        }
                        break;

                    case "takedamage":         // (from boss)
                        opTakeDam otd = JsonUtility.FromJson <opTakeDam>(gms.content);
                        if (TakeDamageHandle != null)
                        {
                            TakeDamageHandle(gms.sender, otd.dmg);
                        }
                        break;

                    case "dealdamage":         // (to boss)
                        opDealDam odd = JsonUtility.FromJson <opDealDam>(gms.content);
                        if (DealDamageHandle != null)
                        {
                            DealDamageHandle(gms.sender, odd.dmg, new Vector2(odd.dirx, odd.diry));
                        }
                        break;

                    case "bossposition":         // boss position
                        bossPos bp = JsonUtility.FromJson <bossPos>(gms.content);
                        if (UpdateBossPositionHandle != null)
                        {
                            StartCoroutine(UpdateBossPositionHandle(bp.x, bp.y, bp.rx, bp.ry));
                        }
                        break;

                    case "playeranimation":         // player animation
                        playerAnim pa = JsonUtility.FromJson <playerAnim>(gms.content);
                        if (PlayerAnimHandle != null)
                        {
                            PlayerAnimHandle(gms.sender, pa.name);
                        }
                        break;

                    case "bossanimation":         // boss animation
                        bossAnim ba = JsonUtility.FromJson <bossAnim>(gms.content);
                        if (BossAnimHandle != null)
                        {
                            StartCoroutine(BossAnimHandle(ba.name));
                        }
                        break;

                    case "spawnprojectile":         // spawn projectile
                        spawnProj sp = JsonUtility.FromJson <spawnProj>(gms.content);
                        if (SpawnProjHandle != null)
                        {
                            SpawnProjHandle(gms.sender, sp.name, new Vector2(sp.x, sp.y), new Vector2(sp.dx, sp.dy), new Quaternion(sp.rx, sp.ry, sp.rz, sp.rw));
                        }
                        break;

                    default:
                        Debug.Log("unknown general message type");
                        Debug.Log(gms.ct);
                        break;
                    }
                    break;

                default:
                    Debug.Log("unknown message type");
                    break;
                }
                msg = null;
            }
            yield return(new WaitForEndOfFrame());
        }
    }