Transform.position은 월드의 절대 좌표(혹은 월드 좌표)를 기준으로 동작하고 Transform.Translate는 자기 자신 즉, 로컬 좌표를 기준으로 동작합니다.
즉, 위의 스크립트를 설명하자면
1번의 경우 Transform.position(get)으로 현재 자신의 월드 좌표를 가지고 와서 그 월드 좌표에 (0.01, 0, 0)을 더하기 한후 다시 자신의 그 더해진 좌표로 Transform.position(set)해주고 있습니다. Transform.position(set)은 그 좌표로 이동한다는 의미입니다. 이것이 PC 프레임마다 Update되기 때문에 0.01씩 계속 이동하게 됩니다.
2번의 경우 절대 좌표는 상관없습니다. 자신(This)의 위치 Transform.Translate에서 매 프레임마다 0.01씩 X축으로 이동하라는 의미입니다.
사용하기 나름이겠지만 보통 비행기가 이동하거나 특정 오브젝트를 따라가거나 할 때(몬스터가 Player 캐릭터를 따라가기)는 Transform.Translate를 사용합니다.
현재 2021 Unity Version에서 Visual Script를 실행하면 다음과 같은 에러가 발생됩니다.
--------- Error Message ---------
Failed to fetch inherited attributes on Unity.Plastic.Antlr3.Runtime.Tree.CommonTree.
System.TypeLoadException: Could not load type Antlr.Runtime.Tree.AntlrRuntime_BaseTreeDebugView while decoding custom attribute: (null)
at (wrapper managed-to-native) System.MonoCustomAttrs.GetCustomAttributesInternal(System.Reflection.ICustomAttributeProvider,System.Type,bool)
at System.MonoCustomAttrs.GetCustomAttributesBase (System.Reflection.ICustomAttributeProvider obj, System.Type attributeType, System.Boolean inheritedOnly) [0x00013] in <695d1cc93cca45069c528c15c9fdd749>:0
at System.MonoCustomAttrs.GetCustomAttributes (System.Reflection.ICustomAttributeProvider obj, System.Type attributeType, System.Boolean inherit) [0x002b3] in <695d1cc93cca45069c528c15c9fdd749>:0
at System.RuntimeType.GetCustomAttributes (System.Type attributeType, System.Boolean inherit) [0x00038] in <695d1cc93cca45069c528c15c9fdd749>:0
at System.Attribute.GetCustomAttributes (System.Reflection.MemberInfo element, System.Boolean inherit) [0x00052] in <695d1cc93cca45069c528c15c9fdd749>:0
at Unity.VisualScripting.AttributeUtility+AttributeCache..ctor (System.Reflection.MemberInfo element) [0x0002c] in D:\ProjectsDev\001 Purple Ocean Git\8 Visual Script Tutorial\Visual Script Tutorial\Library\PackageCache\com.unity.visualscripting@1.6.1\Runtime\VisualScripting.Core\Reflection\AttributeUtility.cs:56
이는 Unity에 기본적으로 설치된 "Version Control" 기능과 충돌이 나기 때문입니다.
이를 해결하기 위해서는 Version Control을 제거(Remove)하면 됩니다.
Version Control은 Unity "Collaborate" 기능과 "Plastic SCM"을 이용하는 것과 관련이 됩니다. 위 기능을 이미 아시는 분이라면 스스로 판단하시면 되지만 그렇지 않다면 사용할 일이 없을 듯 합니다. 게임 또는 앱을 만드는 유니티 본연의 기능과는 무관하고 팀작업을하거나 파일 관리를 지원하는 것인데 대부분 git이나 SVN을 사용할 가능성이 높고 개인 프로젝트라면 굳이 필요치 않습니다. 과감히 삭제하셔도 무관합니다.
"Unity > Window > Package Manager"에서 Version Control을 찾아 우측 하단의 "Remove"버튼을 눌러 제거해주세요.
이 글을 읽고 있다면 이미 비주얼 스크립트가 무엇인지 어느 정도는 알고 있으리라 판단이 됩니다. 따라서 복잡한 설명은 생략하고 한 가지만 말씀드린다면 어려운 코딩작업이 없이도 PC, 모바일(ANDROID, APPLE), WebGL 등 다양한 플랫폼의 앱이나 게임을 만드는게 가능하다는 것입니다. 그런데 중요한 것은 어느 수준의 어플리케이션을 개발할 수 있는가인데 적어도 이글에 관심이 있는 분이 상상하시는 것 정도는 모두 개발 가능하다고 감히 말씀드릴 수 있습니다.
유니티 비주얼 스크립트 혹은 볼트(Bolt) 스크립트에 대한 탄생 배경이나 지나온 과정들에 대한 이야기는 네이버 혹은 구글 검색을 통해 확인해 보시기 바랍니다.
<유니티 설치하기>
Visual Script를 사용하기 위해서는 유니티를 먼저 설치해야 합니다. 파워풀한 유니티 엔진을 코딩없이 사용할 수 있다는 것이 매우 놀라울 따름입니다.
유니티는 2021년도 최신버전을 설치해야합니다.
이전 버전들과는 달리 Visual Script가 기본으로 탑재되어 있기 때문에 별도의 Visual Script Package를 설치할 필요없이 바로 사용이 가능합니다.