MetaverseCapstone / 2024Capstone

0 stars 0 forks source link

스키마 작성 규칙 #33

Open Park-junseo opened 4 months ago

Park-junseo commented 4 months ago

스키마 이벤트 리스너 로직 변경


public void PackageAddListener()
{
    OnBroadcastSchemaMap.Clear();

    AddListener((schema) =>
    {
        GltfRoutineManager.Instance.CreateObject(schema.objData);
    });

    AddListener((schema) =>
    {
        StartCoroutine(MapDataController.Instance.MapLoad(schema.map_id));
    });

    AddListener((schema) =>
    {
        StartCoroutine(Managers.Client.PlayerJoin(schema.joinPlayerId, schema.joinPlayerNickname));
    });

    AddListener((schema) =>
    {
        StartCoroutine(Managers.Client.PlayerLeave(schema.leavePlayerId));
    });

    AddListener((schema) =>
    {
        StartCoroutine(Managers.Client.PlayerMove(schema.movePlayerId, schema.movePosition, schema.moveRotation));
    });

}

BroadCastHandler의 PackageAddListener 함수에 다음과 같이 리스너를 추가한다 위 코드의 schema는 AddListener에 전달한 Generic 스키마 타입으로 사용 가능

스키마 설계 로직 변경


protected override ProtocolConverter GetProtocolStreamByIndividual(ProtocolConverter prev)
{
    Debug.Log("PlayerJoinSchema : " + message);
    return prev.Cast(ref joinPlayerNickname);
}

joinPlayerNickname이 Schema에 포함된 프로퍼티라면 다양한 기본 타입(string, int, double, float, bool 등) Cast 함수와 사용 가능