Command Console 

# 학습 과정 소개

Command Console의 다양한 명령어를 사용해 특정한 동작을 바로 수행할 수 있습니다. 특정 프로퍼티를 사용하고 있는 모든 엔티티를 찾을 수도 있고, 디버그에 활용할 수도 있습니다. Command Console 활용법을 알아봅시다.

# Command Console 소개

Panel - Command Console을 눌러 Command Console 창을 열 수 있습니다. [png](17307099056193c94fbbdb3df4c6fb3c5047b65b20282)

#### 화면 소개

[png](1730788005872cf5bfbc44751472087b21b2871280fc4)

[{"번호":"!","이름":"결과 창","설명":"실행한 명령어의 결과를 보여줍니다."},{"번호":"!","이름":"입력 창","설명":"명령어를 입력하는 공간입니다. 명령어를 입력한 후 Enter 키를 입력하면 실행됩니다."}]

# 명령어 사용하기

명령어를 입력하면 실행한 결괏값이 Command Console 결과 창 혹은 콘솔 창에 로그로 출력됩니다.

#### 명령어 종류

MSW에서 사전에 지정한 명령어만 사용할 수 있습니다. 명령어를 사용할 때는 명령어와 매개 변수는 반드시 입력해야 합니다. 매개 변수를 입력할 때는 지정된 순서를 지켜야 합니다. 콘솔에서 사용할 수 있는 명령어는 아래와 같습니다. 명령어의 매개 변수와 옵션은 [Console 명령어](/docs?postId=1195%7B%22target%22:%22_blank%22%7D)에서 확인할 수 있습니다.

[{"명령어 이름":"help","설명":"사용할 수 있는 명령어와 설명을 출력합니다."},{"명령어 이름":"echo","설명":"입력된 메시지를 결과 창에 그대로 출력합니다."},{"명령어 이름":"export","설명":"지정한 경로로 원하는 파일을 내보냅니다. 스크립트, 코드 블록, 데이터셋, 유저 데이터셋 엔트리만 내보낼 수 있습니다."},{"명령어 이름":"import","설명":"지정한 경로로 파일을 불러옵니다."},{"명령어 이름":"findentity","설명":"하이어라키에서 특정 엔티티를 찾습니다. 모든 맵의 엔티티를 대상으로 찾을 수 있습니다."},{"명령어 이름":"findcomponent","설명":"하이어라키에 있는 특정 컴포넌트를 찾습니다. 모든 맵을 대상으로 찾을 수 있습니다."},{"명령어 이름":"findproperty","설명":"하이어라키에 있는 특정 프로퍼티를 찾습니다. 모든 맵을 대상으로 찾을 수 있습니다."},{"명령어 이름":"play","설명":"월드를 플레이합니다. 디버그 모드로 실행하거나 가상 플레이어를 추가할 수 있습니다."}]

> Tip Command Console에서 바로 확인하고 싶을 경우 `help 명령어 이름`을 실행해 확인할 수 있습니다.
> 
>   * 명령어 목록 찾기 예시: help all, help findentity
> 


# 기본 구문

기본 구문은 명령어, 매개 변수, 옵션으로 구분됩니다. 세 가지를 구분할 때는 띄어쓰기로만 구분합니다. `,`이나 다른 기호를 사용할 경우 에러가 발생합니다. `[]`는 크리에이터가 선택적으로 사용하면 되는 매개 변수 혹은 옵션을 의미합니다. 명령어 구문은 일반적으로 아래와 같이 구성됩니다.
    
    
    @Component
    script ServerCommandProcessor extends Component
        @ExecSpace("ServerOnly")
        method void OnBeginPlay()
            명령어 매개변수 -옵션1 -옵션2
        end
    end
    

### 매개 변수

명령어의 매개 변수는 필수로 입력해야 하며, 지정된 순서를 반드시 지켜 입력해야 합니다. 예를 들어, export의 매개 변수는 src_path, dest_path로 export를 사용하기 위해선 export "MyDesk/NewComponent" "C:\Test" 이렇게 입력해야 합니다.

### 옵션

명령어마다 다양한 옵션을 제공합니다. 옵션은 크리에이터의 명령어 사용 의도에 따라 자유롭게 선택해 사용하면 됩니다. 옵션 작성 순서에는 규칙이 없으므로, 크리에이터가 순서를 자유롭게 변경해 작성해도 무방합니다. 옵션을 사용할 때는 `-`을 옵션명 앞에 붙여야 합니다. 옵션 또한 매개 변수를 가질 수 있습니다. 이때 옵션의 매개 변수는 정해진 순서대로 작성해 사용해야 합니다. 예를 들어, 명령어 play의 - debug의 경우 매개 변수가 없기 때문에 `play -debug`만을 입력해 debug 모드를 실행할 수 있습니다. 그러나 -virtual을 사용하려면 매개 변수가 필요하므로 `play -virtual_player 5`와 같이 작성해 가상의 플레이어를 5명 추가합니다.

# stream

옵션의 매개 변수 중 하나로 stream을 활용할 수 있습니다. stream은 특정 파일로부터 값을 가져오거나 내보낼 때 사용합니다. 또한 결과를 파일 형태로 출력할 수도 있습니다. `-out`, `-err` 옵션의 매개 변수로 stream을 넘기면 명령어의 결과 로그와 에러 로그를 파일로 출력합니다. 파일로 출력하기 위해서는 경로 앞에 `$`를 붙여 사용해야 합니다. 예를 들어 `echo $"C:\Test/file.txt"`로 입력하게 되면 파일 경로의 값이 인수로 넘어가게 됩니다. 반면 `echo "C:\Test/file.txt"`로 입력하면, 입력한 내용 자체가 인수로 넘어가게 됩니다. 아래와 같이 명령어를 작성하게 되면 결과 로그와 에러 로그 파일이 매개 변수로 지정한 파일 경로에, 파일로 생성되어 출력됩니다.
    
    
    @Component
    script GenericComponent extends Component
    end
    

# 경로

명령어 사용 시 파일 경로, 메이커의 엔트리 경로는 아래의 규칙에 따라 작성해야 합니다.

  * 파일 경로: 운영체제의 파일 경로 표기법을 따릅니다.
  * Workspace 경로 : MyDesk부터 차례대로 입력합니니다. 
    * 예시: MyDesk/Images/Test_Sound_01.ogg
  * Hierarchy 경로: World부터 차례대로 구분합니다. 
    * 예시: World/ui/UIGroup/UIEmpty



# 로그

크리에이터가 작성한 명령어를 실행하면, 실행 결과는 콘솔 창에 로그 형태로 나타납니다. 명령어 사용 결과에 따라 나타나는 로그는 일반 로그, 명령어 결과 로그, 에러 로그로 총 3종류입니다.

#### 일반 로그

일반 로그는 명령어 수행 상황과 같이 크리에이터에게 정보를 전달하는 로그입니다. 예를 들어 import 명령어를 사용하면, 파일 불러오기가 완료되었을 때 완료를 알리는 로그가 나타납니다.

#### 결과 로그

명령어를 통해 얻을 수 있는 결과들은 결과 로그로 분류합니다. 예를 들어 findentity 명령어를 사용하면, 찾은 엔티티들이 결과 로그로 나타납니다.

#### 에러 로그

명령어 수행 중에 문제가 발생할 경우 나타나는 로그를 에러 로그로 분류합니다. 예를 들어 명령어의 매개 변수가 유효하지 않을 경우 에러 로그가 발생합니다.