안녕하세요!
오늘은 유니티 빌드 테스트할 때 포톤을 사용해 멀티 게임을 만든 경우, 테스트하면 다수의 접속자가 필요한 경우가 있는데요. 이 경우 10명이 필요하면 10개의 모바일이나 태블릿에다가 테스트하기는 어렵습니다. 그래서 저는 주로 웹 빌드를 여러개 띄워놓는데 그렇기 하기 위해서는 다음과 같은 과정을 진행하시면 됩니다.
Build Setting 에서 Build 버튼을 눌려서 유니티 웹 빌드 파일을 만든다. 이때 파일 위치 기억해야합니다.
빌드 중인 사진.
위에처럼 빌드가 완료되어 해당 파일 안에 들어가 있다면 이 웹 빌드 파일을 복사합니다. 이때, 같이 빌드 파일에 있으면 오류가 나기 때문에 아래와 같이 폴더를 분리해서 복사해줘야합니다.
그리고 그 안에 있는 각 응용 파일을 실행시키면 동시 10명의 사용자를 접속할 수 있습니다.
다만 이 과정에서 빌드 후 복사 붙여넣기 * 10 번에 응용 파일 실행 클릭 * 10 ... 너무 귀찮은 것 같아 자동화 시킬려고 이것저것 찾은 결과, 파이썬으로 할 수 있게 만들었습니다.
import os
import shutil
import subprocess
import concurrent.futures
# 1. 폴더 복사 함수
def copy_folder(source_folder, destination_folder, num_copies):
# 복사된 폴더에서 실행할 작업을 병렬로 실행
with concurrent.futures.ThreadPoolExecutor(max_workers=num_copies) as executor:
futures = []
for i in range(1, num_copies + 1):
# 복사할 새로운 폴더 경로
new_folder = f"{destination_folder}_{i}"
# 폴더 복사
shutil.copytree(source_folder, new_folder)
print(f"{source_folder} -> {new_folder} 폴더 복사 완료")
# silbotclient 실행을 병렬로 수행
futures.append(executor.submit(execute_silbotclient, new_folder))
# 모든 실행이 끝날 때까지 기다림
concurrent.futures.wait(futures)
# 2. silbotclient 실행 함수
def execute_silbotclient(folder_path):
# silbotclient 실행 파일 경로
executable_path = os.path.join(folder_path, 'buildGame.exe')
# 실행 파일이 존재하는지 확인
if os.path.exists(executable_path):
print(f"실행 중: {executable_path}")
subprocess.run([executable_path], check=True)
else:
print(f"{executable_path} 파일을 찾을 수 없습니다.")
# 3. 실행
source_folder = r"C:\Users\Desktop\Build\Build7" # 원본 폴더 경로 (raw string 사용)
destination_folder = r"C:\Users\Desktop\Build\Build7" # 복사된 폴더 경로 (raw string 사용) Build7 앞에 붙는 이름
num_copies = 18 # 복사할 폴더 개수
copy_folder(source_folder, destination_folder, num_copies)
먼저 코드를 제공해드립니다.
이 코드에서 직접 바꾸실 부분은 source_folder = r"C:\Users\Desktop\Build\Build7" 으로 source_folder 은 복제하실 파일 위치 설정과 destination_folder = r"C:\Users\Desktop\Build\Build7" 는 복사된 폴더 경로 이때 경로 복붙하신 후 \파일 이름을 끝에 안 붙이면 해당 파일 안이 아닌 그 밖에 생성되니 유의하시길 바랍니다.
num_copies 몇 개나 파일 복제할 건지 / '실행파일이름.exe' 여기서 실행 파일 이름을 바꿔줍니다. 저 같은 경우, buildGame.exe 였습니다.
여기까지 한 후, F5 를 누르면 실행되면서 로그를 통해 폴더가 잘 복사되고 응용 파일이 알아서 실행됩니다.
이로써 코드 하나 실행시키면, 알아서 파일 복제부터 실행까지 해주는 자동화 완성! 테스트할 때마다 10개 이상 파일을 복제하고 실행하느라 짜증났는데 진작에 할 걸 그랬네요
다른 분들도 저와 같은 상황이라면 위 코드를 활용해서 자동화 하시길 바랍니다.
참고로 파이썬 코드 실행 프로그램은 해당 링크에서 https://www.python.org/downloads/ 다운받아서 IDLE 로 실행시켰습니다.
Download Python
The official home of the Python Programming Language
www.python.org
유용하고 도움이 되길 바라며 글 읽어주셔서 감사합니다.
댓글