Packet Generator #4

CJB_ny·2022년 3월 2일
0

Unity_Server

목록 보기
42/55
post-thumbnail

packet을 만들어서 어느정도 자동화 되는 것까지 확인을 하였다.

그런데 그 만든 코드(파일들을)

PlayerInfoReq와 같은 패킷들을

이런식으로 복붙을 하고 있었는데

패킷이 계속해서 바뀔텐데

그럴때마다 복붙하는것은 말이 안되니까 오늘은

복붙을 안하고 참조를 하는 방식이 되게끄름 해보도록 하겠다.

Server, Dummy 둘다

Packet폴더 > GenPackets 만들기

그래서

여기 이 세션의 각부분 잘라내서 > 각각의 GenPackets에다가 붙여 넣어라

이런식으로 통째로 들어간다는 것인데

우리가 복붙을 안하더라도 이제 자동으로 갱신이 되게끔 만들어 줘야 한다.


우리가 그리고

이런식으로 PDL받고 있었는데 이거 경로가 지금

이런식이기 때문에 이것도 수정을 좀 해줘야한다.

경로를 하나 파주는데

지금은 아까 exe파일이 있던 곳의 경로이지만

지금 Main 즉, 프로그램을 처음 실행할 때

인자를 받아가지고 pdlPath의 경로를 바꿀 수 있게 옵션을 넣어주도록 하겠다.

Main에서 받는 args의 길이가 1보다 크다

즉, 프로그램을 실행할 때 인자로 뭔가를 넘겨줬다면은

이녀석을 이렇게 파싱을 해가지고 pdlPath에다가 넣어준다음에

기존에 했던 Creat를 이어가면된다.


그래서 지금까지 경로를 보면은

프젝파일이 여기 있고

"실제로" "빌드"를 하면 실행되는 경로는

bin > Debug > net6.0 이다.

근데 이렇게 되면 경로가 복잡하니까

bin 산하에다가만 생성이 되도록 바꿔 주도록 하자.

PacketGenerator > 속성 ㄱㄱ

그리고

이 경로가 있는데 > 찾아보기

강의대로 경로 설정하는데

안된다!


지금 경로 설정 하는 부분이 안되니까 다음에 하도록 하고 강의 ㄱㄱ


지금 그리고

지금 이 원본 PDL파일을 어디서 관리를 할지 궁금한데

PacketGenerator산하에 있는 이 녀석을 실제 원본으로 사용을 해도 무방하다.

( C++은 파일을 만들면 서로 공유하는게 굉장히 간단한 반면,

C#은 생각보다 공유하는게 까다롭다. )

지금

지금 exe 파일이 있는 경로인데 뒤로 가서 찾도록 해주도록 하자.

그래서 이렇게 넣어주면 아무런 문제 없이 실행은 일단 된다.

그래서 어떤 식으로든 우리가

PacketGenerator를 실행을 하면은

자동으로 Packets > GenPackets애들이 자동으로 채워지도록 해줘야한다.

이제 그 부분을 해주도록 하자.


1. GenPackets 자동화

여러가지 방법이 있기는한데 가장 간단한 방법은

"배치 파일"을 만들어서 그 녀석을 눌러주는게 가장 간략하고 실제로 많이 사용하는 방법이다.

여기다가 Common폴더 > Packet폴더 > txt -> GenPackets.bat

이렇게

"배치파일"은 위도우에서 제공해주는 이런저런 명령어들을 작성해서 한번에 실행을 할 수 있게 하는것임


지금 이 배치 파일로 뭘 하고 싶냐하면은

bin > Debug의

exe파일을 클릭을 하는 것을 해주고 싶은 것이다.

그래서 exe 파일은

이렇게 경로를 뒤로 뒤로 한다음에 경로 입력하고

이거만하면 안되고 PDL파일도 들고와야하니까

경로를

이렇게 해주도록하자

그리고 배치파일 더블클릭하면

해당 배치 파일 경로에 이렇게 생긴다.

이녀석 열어보면

이렇게 뜨는데

이게 바로 우리가 Program에서 만들어 주었던

이녀석이다.

그리고 우리가 배치파일에서 첫인자로 넣어준

지금 이녀석이

실제로 프로그램이 실행 될때 (PacketGenerator의 )

Main의 args로 들어가게된다.

지금은 하나만 넣어줬으니까 args[0]으로 들어가게되서

그녀석을

여기서 파싱을 해가지고

이렇게 찾아 준것이다.


1. 배치파일 두번째

지금 해야할게 Common > 배치파일 실행

하면 해당 경로에 GenPacket.cs 생성되었는데

이렇게 Dummy > Packets 안에

Server > Packets 안에

GenPackets을 만들어 줘야한다.

그래서 지금 생성되는 파일을 저 경로에다가 복사하는 방법은

구글링을 하면 여러가지 방법이 있지만

xcpoy가 제일 좋은듯 그래서 이것을 사용을 하자.

이렇게 하면되는데

"/Y"는 해당 파일이 똑같은 게 있으면 덮어 쓰겠다.

그다음 경로를 " " 안에다가 꼭 넣어주도록 하자.

그럼 Commom > Packet > 배치파일 실행 > 각 해당 경로에 GenPackets.cs복사함

이렇게 될테니 실행하고 확인 ㄱㄱ

이런식으로 바뀐 것을 볼 수 있다.

그래서 이런 배치 파일을 만들어서 수동으로 눌러주는 그런 방법도 있고

아니면은

빌드하는 순간에 실행을 해서 자동으로 GenPacket을 만들어 주는 방법도 있다.

그럼 이제

이부분을 실컷 작업을 한다음에

배치파일을 눌러주기만 하면된다.

그리고 ServerSession, ClientSession에서 이부분을 잘 활용하면 될 것이다.

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글