런타임 중 실시간 편집

비주얼 스크립팅의 실시간 편집은 실시간으로 단순히 값을 조정한다는 것을 뛰어넘는다. 실시간 편집에는 유닛간의 연결선뿐 아니라 유닛들을 추가하고 제거하는 것도 가능하다. 게임이 진행되는 동안 코딩을 할 수 있다는 것이며, 즉시 게임 플레이에서 그 변화를 확인할 수 있다는 것이다.

 

다음 사항은 기억하자.

  • 임배드(Embed)로 작업된 경우 플레이 모드를 종료하면 모든 변경 내용이 되돌아간다(reverted), 해당 변경 내용은 컴포넌트 내부에서만 의미가 있다.
  • 그래프(Graph)로 작업된 경우 플레이 모드를 종료하면 그 변경 내용은 저장된다. 즉, 변경 내용은 스크립트 그래프 에셋 파일에 저장된다.
  • 그래프 변수(Graph Variables)들은 임배드 그래프(Embed Graph)가 아닐 때 저장된다.
  • 다음 변수는 저장되지 않는다. (역자주-플레이 모드에서 변수를 추가, 삭제하지 않는게 좋을 듯 하다)
    • Object
    • Scene
    • App
    • Saved

팁: 임배드 그래프(Embed Graph)를 사용하였고 수정 내용을 버리고 싶지 않다면 플레이 모드를 종료하기 전에 변경한 모든 내용을 복사(Copy)하면 된다. 그리고 플레이 모드 종료 후 붙여 넣기 해서 복원하면 된다. 단, 변경된 변수는 이 방법을 사용할 수 없다.

 

시각적 표현을 목적으로 하기에 라이브 모드에서 연결선들(Connectors)에는 실행 방향에 맞게 애니메이션 되는 물방울같은 흐름이 표시된다. 물방울의 속도와 수는 실행 빈도나 속도를 나타내는 것은 않는다.



런타임 중에 그래프 변경하기


그래프를 연 상태에서 다음 중 하나 또는 모두를 수행한다.

  • 인스펙터(Inspector)에서 컴포넌트의 값을 변경하고자 하는 필드를 클릭한다. 그 값은 플레이 모드를 종료하면 지속되지 않고 저장되지도 않는다.
  • 그래프의 빈 곳을 마우스 오른쪽 버튼으로 누르고 유닛을 추가한다.
  • 유닛 연결한다.
  • 모든 연결(connectors)을 제거한다.
  • 확장(extension)을 추가한다.
  • 디버그 유닛을 추가하거나 연결한다.
  • 유닛의 값을 직접 변경한다.

팁: 런타임 중에 선택한 GameObject의 값을 보고 작업하고자 한다면 스크립트 그래프가 포함된 GameObject를 선택한 상태여야 한다.

 

참고: 런타임 중에 Start Event와 관련된 변경 사항들은 해당 세션 동안 GameObject에 대한 업데이트 상태를 받을 수 없다. Start Event와 관련된 새로운 로직을 실행하려면 Unity 세션을 다시 시작해야 한다.(역자주 - 당연히 Start Event는 실행됐을 때 1번만 제일먼저 실행되기 때문이다)

 

그래프(Graph)로 작업된 경우 변경 사항들은 저장된 그래프 에셋의 모든 인스턴스들(Instances)에 즉시 공유된다.

 

<원문>

https://docs.unity3d.com/Packages/com.unity.visualscripting@1.7/manual/vs-live-edit-runtime.html

댓글

이 블로그의 인기 게시물

EMACS - 파일 열기, 저장, 도움말

EMACS - 검색 및 바꾸기

EMACS, CLISP, SLIME 설치