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

 

다음 사항은 기억하자.

  • 임배드(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

'VS 기본' 카테고리의 다른 글

input manager 이용 사용자 입력 받기  (0) 2021.08.22
Input system 이용 사용자 입력 받기  (0) 2021.08.21
실시간 편집  (0) 2021.08.21
수퍼 유닛 만들기  (0) 2021.08.21
재사용 가능한 수퍼 유닛  (0) 2021.08.20

+ Recent posts