인프런 커뮤니티 질문&답변

dpravity님의 프로필 이미지

작성한 질문수

[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)

서버 프레임워크

(해결) 맥북 사용하시는 수강생 분이 계시다면 rider, protobuf 조언을 구합니다.

작성

·

260

·

수정됨

0

개발환경은 맥북, rider 사용중 입니다.

rider 패키지 구성과 protobuf 구성에서 해결 방법을 찾고 있습니다.

rider 패키지 구성 현황

[구성완료]

Server

  • GameServer

  • ServerCore

[미구성]

Tools

  • PacketGenerator : 솔루션은 만들었으나 bin 폴더 구성 못함

Common

  • Protocol

해결 방법을 알고계시다면, 레퍼런스 또는 조언 부탁드립니다.

감사합니다.

@추가 내용

protobuf 설치는 homebrew 로 설치하였습니다.

protoc --version : libprotoc 27.1

protobuf 버전 변경 - 3.27.2

답변 2

2

dpravity님의 프로필 이미지
dpravity
질문자

맥북/리눅스 사용자용 1차 해결 내용

(필수) protobuf 설치

  • v3.27.2 버전과 맥북용 v27.2 버전은 동일하므로 사용 가능

디렉토리 위치

Server

  • GenProto.bat -> GenProto.sh 파일 교체

    • chmod +x GenProto.sh : sh 권한 부여

sh 스크립트 내용

#!/bin/bash

# 현재 작업 디렉토리 저장
curPath=$(pwd)
projectPath=$1

# 프로젝트 경로로 이동
cd "$projectPath"
cd ..

# 루트 경로 설정
rootPath=$(pwd)
outputPath="$rootPath$2"

# 프로토콜 파일이 있는 디렉토리로 이동
cd Common/Protocol

# protoc 명령어 실행 (brew로 설치된 protoc 사용)
protoc -I=./ --csharp_out="$outputPath" ./Protocol.proto ./Enum.proto ./Struct.proto

# 오류 발생 시 실행 중단
if [ $? -ne 0 ]; then
    echo "protoc 명령어 실행 중 오류 발생"
    exit 1
fi

# 패킷 생성기 실행 디렉토리로 이동 (예: macOS용 대체 프로그램 사용)
cd "$rootPath/Tools/PacketGenerator/bin"

# macOS용 PacketGenerator 실행 (예: PacketGenerator 대신 다른 프로그램 사용)
./PacketGenerator -o "$2" -t "$3"

# 원래 디렉토리로 돌아가기
cd $curPath

# 스크립트 종료
exit 0

GameServer.csproj PreBuild 내용 변경

<Target Name="PreBuild" BeforeTargets="PreBuild">
        <Exec Command="bash $(SolutionDir)GenProto.sh $(SolutionDir) /Server/GameServer/Packet/Generated/ 1" />
    </Target>

1

dpravity님의 프로필 이미지
dpravity
질문자

Properties $(SolutionDir) 환경변수 Undefined 일 경우 빌드 옵션 확인 필요


GameServer.csproj 파일 또는 GameServer -> Properties -> Build Events 의 Before Build 에서 차이점

  • PreBuild는 MSBuild 표준 타겟으로 Visual Studio뿐만 아니라 다른 빌드 환경에서도 동작

  • PreBuildEvent는 Visual Studio에서 주로 사용

dpravity님의 프로필 이미지

작성한 질문수

질문하기