본문 바로가기
IT

[유니티/Unity] 포톤 및 멀티 테스트를 위한 빌드 화면 여러 개 띄우는 방법 + 자동 폴더 복사 및 실행 파일 자동 실행 파이썬 자동화 코드 공유

by 배애앰이 좋아 2025. 4. 13.
반응형

 

안녕하세요!

오늘은 유니티 빌드 테스트할 때 포톤을 사용해 멀티 게임을 만든 경우, 테스트하면 다수의 접속자가 필요한 경우가 있는데요.  이 경우 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

 

유용하고 도움이 되길 바라며 글 읽어주셔서 감사합니다.

반응형

댓글