ðŸ–ĨïļAgar

GameLiftServerAPI

  1. GameLiftServerAPI.InitSDK()

  2. ProcessParameters processParameters ėž‘ė„ą

    • OnStartGameSession Callback

      • GameLiftServerAPI.ActivateGameSession();

    • OnUpdateGameSession Callback

    • OnProcessTerminate Callback

      • GameLiftServerAPI.ProcessEnding();

    • OnHealthCheck Callback

  3. GameLiftServerAPI.ProcessReady(processParameters);

  4. GameLiftServerAPI.AcceptPlayerSession(playerSessionId);

  • OnClientDisconnect -> GameLiftServerAPI.RemovePlayerSession(playerSessionId);

  • OnApplicationQuit() -> GameLiftServerAPI.ProcessEnding();

Sequence

ClientModule class

-> OnClickSignInBtn()

-> ClientModule.Singleton.SignInProcess(inputName);

-> HttpModule.PutRequest() -> Receive Ticket from aws Lambda

  • {"ticketId": "a7480251-77ca-4e9a-85c0-94358864a1b7"}

-> MatchStatusPolling() -> Receive ClientConnection Info From aws Lambda

  • {'address': '54.84.153.185', 'playerSessionId': 'psess-cd45eb3c-cae5-caab-bc03-ee1708ba3587', 'port': 7777}

    • ip address

    • port

    • player session ID

->

ė„ļė…˜ ė•„ėī디 ęđŒė§€ 받ęģ  난 후.

Food Prefab

플레ėīė–ī는 ė•„니ė§€ë§Œ 동ęļ°í™” 되ė–īė•ž 할 대ėƒ.

  • NetworkObject

Player

ėžë‹Ļ 플레ėīė–ī끞ëĶŽ ėķĐ돌ėī ėžė–ī난 ęē―ėš°.

  • [ServerRPC(RequireOwnership = true)]

    • // ServerRPC : Invoke by Client, Run on Server.

  • [ClientRpc]

    • // ClientRPC : Invoke by server, Run on Client.

public class Player : NetworkBehaviour
{
    ...
    public override void NetworkStart()
    {
        // This is called when the object is spawned.
        // Once this gets invoked. The object is ready for RPC and var changes.
        ServerInit();
    }
}
[ServerRpc(RequireOwnership = true)]
private void DoEaServerRpc(GameObject target)
{
    // ServerRPC : Invoke by Client, Run on Server.
    if (transform.localScale.magnitude >= target.transform.localScale.magnitude)
    {
        Vector3 newSiz = new Vector3(transform.localScale.x, transform.localScale.y, transform.localScale.z);
        if (target.tag == Food)
        {
            int multiply = transform.localScale.x < 5.0 ? 1 : 0;
            newSiz += new Vector3(Increase * multiply, Increase * multiply, Increase * multiply);
            Score.Value += 10;
        }
        else if (target.tag == Enemy || target.tag == Boss)
        {
            int multiply = transform.localScale.x < 10.0 ? 10 : 0;
            newSiz += new Vector3(Increase * multiply, Increase * multiply, Increase * multiply);
            Score.Value += 100;
        }
        Destroy(target);
        transform.localScale = newSiz;
        DoEatClientRpc(target, newSiz);
    }
}

[ClientRpc]
public void DoEatClientRpc(GameObject target, Vector3 size)
{
    // This code gets ran on the clients at the request of the server.
    // ClientRPC : Invoke by server, Run on Client.
    Destroy(target);
    transform.localScale = size;
}
private void OnTriggerEnter(Collider other)
{
    DoEatServerRpc(other.gameObject);
}

ė§€ė†ė ėļ ėœ„ėđ˜ ëģ€í™” 동ęļ°í™”

동ęļ°í™” ëģ€ėˆ˜

Last updated