프로젝트별 자동화 스크립트를 만들려면 언리얼 자동화 툴이 감지할 수 있는 위치에 새 C# 프로젝트를 생성해야 합니다. 이를 위해서는 다음이 필요합니다.
- 언리얼 엔진의 소스 빌드.
*.uprojectdirs
에 나열된 하위 디렉터리에서 찾을 수 있는 C# 자동화 프로젝트.
자동화 프로젝트 생성
다음 단계는 새 C# 자동화 프로젝트를 생성하는 방법을 안내합니다.
- 언리얼 엔진의 소스 빌드가 있는지 확인합니다.
- 명령 프롬프트를 열고 언리얼 엔진 루트 디렉터리에서
GenerateProjectFiles.bat
을 실행합니다.- 그러면 Visual Studio용
UE5.sln
파일이 생성됩니다.
- 그러면 Visual Studio용
- Visual Studio에서
UE5.sln
파일을 엽니다. - Visual Studio에서 Solution UE5 메인 디렉터리를 우클릭하고 Add > New Project... 를 선택합니다.
- Add a new project 창이 열리면 C# Class Library 를 찾아 선택합니다. Class Library (.NET Framework) Visual C# 옵션은 선택하지 마세요. 언리얼 자동화 툴은 .NET 6.0을 타깃으로 하며, .NET Framework를 타깃으로 시도하면 오류가 발생합니다.
- 새 C# 클래스 라이브러리에 대한 세팅을 선택하라는 메뉴가 나타납니다.
- Project name 을 자동화 스크립트의 이름으로 설정합니다. 예제에서는
SampleScript.Automation
이라고 부릅니다. 참고: UAT는 자동화 스크립트를 올바르게 등록하기 위해 '.Automation' 이름 형식을 찾으므로 이름이<SCRIPT_NAME>.Automation
규칙을 따르는지 확인하세요. - Location 를
UNREAL_ENGINE_ROOT\Engine\Source\Programs
로 설정합니다.
- Project name 을 자동화 스크립트의 이름으로 설정합니다. 예제에서는
- Next를 클릭하여 Additional Information 창을 불러옵니다. 여기서 이 클래스 라이브러리의 Framework 를 선택합니다.
- 드롭다운 메뉴에서 .NET 6.0 (Long-term support) 을 선택한 후 Create 를 클릭합니다.
- 새 C# 클래스 라이브러리에 대한 세팅을 선택하라는 메뉴가 나타납니다.
- Visual Studio에서
SampleScript.Automation
이라는 이름의 폴더가 새로 생성됩니다. 새로 생성된SampleScript.Automation
폴더 안에는Class1.cs
라는 파일이 있습니다. 이 파일의 이름을SampleScript.cs
로 변경합니다. Visual Studio에서 모든 프로젝트 레퍼런스도 변경할 것인지 묻는 메시지가 표시됩니다. 예 를 선택합니다.
프로젝트 세팅
설정 | 값 | 참고 |
---|---|---|
이름 | SampleScript.Automation |
자동화 프로젝트 생성 스크립트는 확장자가 *.Automation.csproj 인 *.csproj 파일을 찾습니다. |
위치 | PROJECT_ROOT\Build 또는 UNREAL_ENGINE_ROOT\Source\Programs |
프로젝트 빌드 또는 엔진 소스 디렉터리에 프로젝트를 저장할 수 있습니다. |
.NET Framework | 6.0 |
자동화 프로젝트 환경설정
빌드 세팅 조정
자동화 스크립트를 작성하기 전에 조정이 필요한 빌드 세팅이 몇 가지 있습니다.
- Visual Studio Solution Explorer 에서
SampleScript.Automation
을 찾아 선택합니다. - 이 폴더를 선택한 상태에서 Visual Studio 메뉴 표시줄의 Build > Configuration Manager... 로 이동합니다.
- Configuration Manager 창에서
SampleScript.Automation
프로젝트를 찾습니다. - 프로젝트의 Configuration 드롭다운 메뉴에서 Edit... 을 선택합니다.
- Edit Project Configurations 라는 제목의 새 창이 나타납니다.
- 이 창에서 Release 를 선택하고 Rename 를 클릭한 후 Release 를 Development 로 변경합니다.
- Release의 이름을 Development 로 변경할지 확인하는 새 창이 나타납니다. Yes 를 클릭하고 열려 있던 두 창을 모두 닫습니다.
프로젝트 프로퍼티 환경설정
이제 자동화 프로젝트의 출력 경로를 환경설정해야 합니다.
- Visual Studio Solution Explorer 에서
SampleScript.Automation
을 찾아 선택합니다. - 이 폴더를 마우스 오른쪽 버튼으로 클릭하고 Properties 를 선택합니다.
- Build 탭에서 원하는 Base output path 를 선택합니다. 아직 설정되지 않은 경우 출력 경로를 bin\ 으로 설정합니다.
자동화 프로젝트 검증
계속 진행하기 전에 먼저 프로젝트가 언리얼 자동화 툴에서 새 자동화 프로젝트로 성공적으로 감지되었는지 확인합니다. 프로젝트를 제대로 구성했는지 확인하려면 Visual Studio를 닫고 명령 프롬프트를 연 다음 GenerateProjectFiles.bat
를 실행합니다. 생성된 UE5.sln
파일을 열고 UNREAL_ENGINE_ROOT\Programs\Automation
으로 이동합니다. 이제 이 디렉터리에 새 자동화 프로젝트 SampleScript.Automation
이 나타납니다. 언리얼 자동화 툴이 새 자동화 프로젝트를 성공적으로 감지했다는 뜻입니다.
프로젝트 레퍼런스 추가
이제 언리얼 자동화 툴에 자동화 프로젝트를 등록할 수 있습니다.
- Visual Studio Solution Explorer 에서
SampleScript.Automation
을 찾아 선택합니다. SampleScript.Automation
을 우클릭하고 Add > Project Reference... 를 선택합니다.- 그러면 Reference Manager - SampleScript.Automation 이라는 제목의 창이 열립니다.
- AutomationUtils.Automation 를 찾아 이름 옆의 확인란을 선택한 후 OK 를 클릭합니다.
자동화 스크립트에 코드 추가
자동화 프로젝트 생성 및 자동화 프로젝트 환경설정 섹션에서 SampleScript.Automation
이라는 이름의 자동화 프로젝트를 생성하도록 안내했습니다. 이 폴더 내에 SampleScript.cs
라는 C# 파일도 만들었습니다. 이 파일에 자동화 스크립트 명령을 추가합니다.
여기서는 자동화 스크립트가 호출될 때 사용자가 입력하는 명령줄 인수로 지정된 항 수까지 피보나치 수열의 항을 명령줄에 출력하는 함수를 작성하겠습니다. 이 예에서는 자동화 스크립트의 다음과 같은 기능을 보여줍니다.
- 도움말 명령
- 명령줄 입력
- 명령줄 출력
- 로깅
자동화 스크립트 코드
아래는 이 자동화 스크립트 예제의 샘플 코드입니다. 이 코드 샘플을 복사하여 SampleScript.cs
에 붙여넣으세요.
using AutomationTool;
namespace SampleScript.Automation
{
// Use [Help()] attributes to document your command and its arguments.
[Help("Sample script printing the first N terms of the Fibonacci sequence.")]
[Help("Usage: SampleScript -Terms=<N>")]
[Help("Terms=<N>", "N (int) the number of terms to compute. Must be greater than or equal to 1.")]
// BuildCommand is the base class for all commands.
public class SampleCommand : BuildCommand
{
public override void ExecuteBuild()
{
// The ParseParamInt() method retrieves a command line argument for this example.
// ParseParam() retrieves a bool, and ParseParamValue() retrieves a string.
int NumTerms = ParseParamInt("Terms");
if (NumTerms < 1)
{
throw new ArgumentException("Invalid number of terms specified. Enter -help for syntax.");
}
else
{
LogInformation("Fibonacci sequence:");
int TermA = 1;
int TermB = 1;
for (int i = 0; i < NumTerms; i++)
{
LogInformation(" {0}", TermA);
int TermC = TermA + TermB;
TermA = TermB;
TermB = TermC;
}
}
}
}
}
자동화 스크립트 실행
이제 자동화 스크립트를 실행할 준비가 되었습니다.
- 명령 프롬프트를 열고
UNREAL_ENGINE_ROOT
디렉터리로 이동합니다. - 다음 명령을 입력합니다.
RunUAT.bat SampleCommand -Terms=6
- 이 명령은
SampleScript.cs
파일에 있는SampleCommand
를 실행하는 AutomationTool을 빌드하고 실행합니다. -
모든 것이 올바르게 진행되면 명령 프롬프트에 다음 출력과 유사한 내용이 표시됩니다.
이미지를 클릭하면 확대됩니다.
-
실행할 수도 있습니다: RunUAT.bat SampleCommand -help
를 실행하여
SampleCommand클래스의
[Help(...)]` 메시지 텍스트에 정보를 표시할 수도 있습니다. -
RunUAT.bat SampleCommand -help
를 실행하여SampleCommand
클래스의[Help(...)]
메시지 텍스트에 정보를 표시할 수도 있습니다.이미지를 클릭하면 확대됩니다.