LHH Blog
취소

(Unity) Login 문자열 검사

구현한 코드를 정리한 글입니다. 💻 코드 LoginManager Login을 하기 위해서 ID와 Password의 규칙을 만들어줘야 된다. ID : 특수문자가 없는 영문 4~12자 PW : 영문, 숫자, 특수문자가 각각 1자이상씩 들어간 8~18자 이에 규칙에 맞게 정규표현식을 사용하여 구현해준다. public class Log...

(Unity) InputField 입력 이벤트

InputField를 사용해 로그인 비밀번호 입력을 구현하는 과정에서 입력 중이거나 Enter를 쳤을 때 다음 입력 구간으로 넘어가도록 구현하는 방법을 찾아보았다. 💻 코드 onSubmit onSubmit는 입력이 끝나고 마무리로 Enter를 눌렀을 때 호출되는 이벤트 메소드이다. 다음 코드는 id 입력 후 Enter를 누르면 password가 ...

(Unity) Android Gradle Error

안드로이드로 빌드하는 과정에서 생긴 에러를 해결하는 방법이다. 프로젝트 세팅을 위해 안드로이드 세팅을 진행하고 빌드한 결과 Gradle 관련 에러가 발생했다. 여러 Gradle 에러를 찾아봤지만 해결되는 방법은 없었고, 에러를 분석해보기로 했다. [ Error (Click) ] FAILURE: Build failed with ...

(C#) Serialization [4]

지난 글(Serialization [3])에 이어서 List를 관리하도록 구현한다. 💻 코드 Skill List SkillInfo 구조체를 만들어 List를 생성해준다. class PlayerInfoReq : Packet { public long playerId; public string name; public struct S...

(C#) Serialization [3]

지난 글(Serialization [2])에 이어서 코드 효율성과, 자동화를 계속 진행한다. 💻 코드 하드코딩 가독성 변수 사이즈만큼 count에 더해주는 작업을 했었다. 이렇게 숫자로 넣기 보다는 가독성을 위해 sizeof()를 사용하는 것이 더 좋다. // 하드코딩 보다는 count += 2; count += 8; // sizeof로 무엇을 넣...

UTF-8, UTF-16

Unicode 과거에 문자나 특수문자를 사용하기 위해서 1byte를 가지고 표현할 수 있었다. 하지만 인터넷 시대가 오면서 세계 각 나라들이 자신들의 언어를 표현하기 위해 표준 코드가 필요했고 그렇게 만들어진 것이 유니코드(Unicode)이다. 유니코드(Unicode)는 글자와 코드가 1:1로 매핑되어 있는 코드표이다. UTF-8 UTF-8은 ...

(C#) Serialization [2]

서버는 클라이언트로부터 패킷을 받으면 거짓말을 하고 있다 가정하며 코드를 구현해야 한다. 지난 글(Serialization [1])에 이어서 자동화에 더 가깝게 수정하고, 패킷 사이즈를 검사할 것이다. 💻 코드 Packet Packet의 쓰기(Write), 읽기(Read)를 추가하고 PlayerInfoReq를 생성하여 상속 받아준다. 기존에 Cl...

(C#) Serialization [1]

나중에 직렬화 관련 코드는 매우 많이 사용되기 때문에 자동화를 해주는 것이 좋다. 이번 글은 자동화를 만들기 위해 어떤식으로 구현할지 미리 인터페이스를 짜본다. 💻 코드 패킷 추가 테스트할 임시 패킷을 추가한다. class Packet { public ushort size; public ushort packetId; } // 유저 ...

(C#) PacketSession

Session의 틀이 완성됐으니 이것을 상속받아 패킷을 관리하는 PacketSession을 구현해본다. 💻 코드 PacketSession 서버는 클라이언트로 부터 패킷을 받았을 때 패킷이 온전하게 도착했는지 확인해야 한다. 무한루프안에서 패킷을 모두 확인할 때까지 패킷 검사 -> 컨텐츠 확인 -> 다음 패킷 이동을 진행한다. Packe...

(C#) SendBuffer

지난 글(RecvBuffer)를 만들었으니 이에 대칭적인 SendBuffer를 만들어본다. 💻 코드 Send는 Recv와 다르게 버퍼 사용량만 체크하면 되기 때문에 _usedSize로 사용량을 체크한다. SendBuffer SendBuffer : 버퍼를 설정 Open : 사용할 버퍼 용량을 받는다. C...