> For the complete documentation index, see [llms.txt](https://ditoland-utplus.gitbook.io/ditoland/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ditoland-utplus.gitbook.io/ditoland/release-note/script-changes/0.7.0-map-changes.md).

# 0.7.0 Map Changes

### 기존 맵 파일 최신화 방법

1\. 스튜디오를 실행하고 Blank 맵을 생성해주세요.

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FqaDvaBH9g1FT3CElvqZP%2F01.png?alt=media&amp;token=92d29b99-dba9-47d3-8c1b-cfcad2fe5660" alt=""><figcaption></figcaption></figure>

2\. Blank 맵에서 아래와 같은 오브젝트들을 선택한 뒤, 복사해주세요. **( Ctrl + C )**

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FsOtgBl716LVjNk9wJpi6%2F02.png?alt=media&amp;token=1de974de-cf35-4d7c-abf3-36cc59b3da94" alt=""><figcaption></figcaption></figure>

3\. 이전 버전에서 작업했던 맵 파일을 열어주세요.

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FSYke2ugp9xpawZq3chX5%2F03.png?alt=media&amp;token=0b2b76d3-d6ae-4e70-a863-56025d9899ab" alt=""><figcaption></figcaption></figure>

4\. Blank 맵에서 복사한 오브젝트들을 붙여넣기 해주세요. **( Ctrl + V )**

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FRrqKSFESnNLnRryYaoD6%2F04.png?alt=media&amp;token=5209a9fa-dff6-4a80-a2f6-99911c5d9047" alt=""><figcaption></figcaption></figure>

5\. **기존에 있던 스크립트**와 **새로 붙여넣기 한 스크립트**에 다른 부분이 있는지 체크해주세요. \
있다면, **새로 붙여넣기 한 스크립트**에 옮겨주세요.

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FiPpyXIeoKHH6PEdvBwR3%2F05.png?alt=media&amp;token=f8289069-3387-477d-b366-cf7f8f4bd798" alt=""><figcaption></figcaption></figure>

BaseSetting의 경우, 프로퍼티 구성이 다음과 같이 변경되었으니 참고하여 수정해주세요.

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FN7hNmamrEiUPFkxYFHzH%2F06.png?alt=media&amp;token=fc942427-19e4-4a97-86fc-c65b5d1c1f84" alt=""><figcaption></figcaption></figure>

6\. 변경 사항을 모두 체크 했다면, **기존에 있던 스크립트**를 삭제해주세요.

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FYcCgh74gMPIssAc21I2O%2F07.png?alt=media&amp;token=88e2c5b5-1070-44f1-8c6a-32b44a4896b5" alt=""><figcaption></figcaption></figure>

7\.  **새로 붙여넣기 한 스크립트**의 위치를 아래와 같이 수정해주세요.

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FCJ3ooDnr6MWTujYafBVJ%2F08.png?alt=media&amp;token=abe14d43-9c49-4c8c-99de-dd0d5387101c" alt=""><figcaption></figcaption></figure>

위치를 조정한 BaseSetting 객체는 상위에 있는 CharacterSetting에 다음과 같이 연결해주세요.

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FJ1OaTY28BSbnSfCQjwOV%2F09.png?alt=media&amp;token=cfa73fef-6c27-440f-b0eb-51ddc7e1564c" alt=""><figcaption></figcaption></figure>

월드 트리에서 검색을 통해 CharacterSetting을 사용하는 곳이 있는지 체크 후,\
하위에 있는 BaseSetting을 위 방법대로 교체해주세요.

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FxUbXDhLjWmUWIkvHA05r%2F10.png?alt=media&amp;token=89e76645-fbc0-491e-897b-31462fabcbfd" alt=""><figcaption></figcaption></figure>

***

***

### 스크립트 변경 사항

**1. 일부 함수가 속성으로 변경되어 곧 삭제될 예정이에요.**\
스크립트 내에서 사용하고 있다면, **Ctrl+Shift+F**로 찾아서 수정해주세요.

<table><thead><tr><th width="302.3333333333333">삭제될 함수</th><th>대체할 속성(Widget 이외의 객체에 사용한 경우)</th><th width="224.66666666666669">대체할 속성(Widget에 사용한 경우)</th></tr></thead><tbody><tr><td>:SetName() / :GetName()</td><td>.Name</td><td>.Name</td></tr><tr><td>:SetVisibility() / :GetVisibility()<br>:SetVisible() / :GetVisible()</td><td>.Visible</td><td>.Visible</td></tr><tr><td>:SetTransform() / :GetTransform()</td><td>.Transform</td><td>-</td></tr><tr><td>:SetLocalTransform() / :GetLocalTransform()</td><td>.LocalTransform</td><td>-</td></tr><tr><td>:SetLocation() / :GetLocation()</td><td>.Location</td><td>.UIPosition</td></tr><tr><td>:SetLocalLocation() / :GetLocalLocation()</td><td>.LocalLocation</td><td>-</td></tr><tr><td>:SetLocation(vector, <mark style="color:blue;">true</mark>)</td><td>:SetLocationWithCollisionCheck(vector, <mark style="color:blue;">true</mark>)</td><td>:SetLocationWithCollisionCheck(vector, <mark style="color:blue;">true</mark>)</td></tr><tr><td>:SetRotation() / :GetRotation()</td><td>.Rotation</td><td>.UIRotation</td></tr><tr><td>:SetLocalRotation() / :GetLocalRotation()</td><td>.LocalRotation</td><td>-</td></tr><tr><td>:SetScale() / :GetScale()</td><td>.Scale</td><td>.UIScale</td></tr><tr><td>:SetScaleXYZ() / :GetScaleXYZ()</td><td>.ScaleXYZ</td><td>-</td></tr><tr><td>:SetOpacity() / :GetOpacity()</td><td>-</td><td>.Opacity</td></tr><tr><td>:GetWidth()</td><td>-</td><td>.Size.X</td></tr><tr><td>:GetHeight()</td><td>-</td><td>.Size.Y</td></tr></tbody></table>

**주의❗**

Widget 객체의 위치를 변경한 경우, Z값을 꼭 포함하여 작성해주세요.

```lua
Widget.UIPosition = Vector.new(x, y, z)
```

**주의❗**

:SetName(), :GetName 함수가 .Name 속성으로 변경되면서 “Name”이라는 이름을 가진 객체를 스크립트에서 호출하면 오류가 발생할 수 있어요.

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FSzltiGK2XgCADdtHjKc2%2F11.png?alt=media&amp;token=39c8c1fb-78b8-4201-80bf-029d2775ea7d" alt=""><figcaption></figcaption></figure>

객체 이름은 “Name”이 아닌 다른 이름을 사용해주세요.

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FA7s65nOzjPO4E6gxkgNt%2F12.png?alt=media&amp;token=727fde76-38bf-4b16-932f-ba0233eb76ca" alt=""><figcaption></figcaption></figure>

**2. 잘못된 함수 이름을 수정했어요.**\
스크립트 내에서 사용하고 있다면, **Ctrl+Shift+F**로 찾아서 수정해주세요.

| 기존                                                        | 변경                       |
| --------------------------------------------------------- | ------------------------ |
| SetEnableMovement<mark style="color:red;">e</mark>Control | SetEnableMovementControl |
| GetEnableMovement<mark style="color:red;">e</mark>Control | GetEnableMovementControl |

**3. 일부 함수 이름이 다음과 같이 변경되었어요.**\
스크립트 내에서 사용하고 있다면, **Ctrl+Shift+F**로 찾아서 수정해주세요.

<table><thead><tr><th width="361">기존</th><th>변경</th></tr></thead><tbody><tr><td>AddUIScale</td><td>AddUISize</td></tr><tr><td><strong>player</strong>:<mark style="color:red;">SetUsingCharacterSetting</mark></td><td><strong>player</strong>:<mark style="color:red;">ChangeCharacterSetting</mark></td></tr><tr><td><mark style="color:red;">SetUsingCharacterBaseSetting</mark></td><td><mark style="color:red;">ChangeCharacterBaseSetting</mark></td></tr><tr><td><mark style="color:red;">SetUsingCharacterAppearanceSetting</mark></td><td><mark style="color:red;">ChangeCharacterAppearanceSetting</mark></td></tr><tr><td><mark style="color:red;">SetUsingCharacterAnimationSetting</mark></td><td><mark style="color:red;">ChangeCharacterAnimationSetting</mark></td></tr><tr><td><mark style="color:red;">GetUsing</mark>CharacterSetting</td><td>StoreCurrentCharacterSetting / RestorePreviousCharacterSetting<br><br>StoreCurrentCharacterBaseSetting / RestorePreviousCharacterBaseSetting<br><br>StoreCurrentCharacterAppearanceSetting / RestorePreviousCharacterAppearanceSetting<br><br>StoreCurrentCharacterAnimationSetting / RestorePreviousCharacterAnimationSetting</td></tr></tbody></table>

**주의❗**

**Game 객체**에 사용한 <mark style="color:red;">SetUsing</mark><mark style="color:blue;">CharacterSetting</mark>은 **그대로** 사용해요.

**player 객체**에 사용한 <mark style="color:red;">SetUsing</mark><mark style="color:blue;">CharacterSetting</mark>만 수정해주세요

참고❕

<mark style="color:red;">GetUsing</mark>CharacterSetting 함수를 수정하실 때는 아래 예제를 참고해주세요.

```lua
local Item = Workspace.GunItem
-----------------------------------------------------------------
local function ChangeGunCharacter(player)
    -- 1.   플레이어의 현재 CharacterSetting을 저장해요.
    player:StoreCurrentCharacterSetting()

    -- 2.   플레이어의 CharacterSetting을 변경해요.
    local gunCharacterSetting = Workspace.GunCharacterSetting
    player:ChangeCharacterSetting(gunCharacterSetting)
end
Item:EquipEvent(ChangeGunCharacter) -- Item 장착 시 호출할 함수를 지정해요.

-----------------------------------------------------------------
local function ResetCharacter(player)
    -- 3.   1에서 저장한 CharacterSetting으로 돌아가요.
    player:RestorePreviousCharacterSetting()
end
Item:UnEquipEvent(ResetCharacter) -- Item 장착 해제 시 호출할 함수를 지정해요.
```

**4. SpotLight, PointLight의 프로퍼티를, 스크립트에서 속성으로 사용할 수 있도록 변경되었어요.**

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FVzsngfxEuqAzj6hah92a%2F13.png?alt=media&amp;token=d21bc5be-c2ca-478b-aac2-fd64f9d2afa5" alt=""><figcaption></figcaption></figure>

SpotLight, PointLight의 프로퍼티를 변경하는 함수는 삭제 예정이에요.\
테스트 플레이 도중 관련 오류를 발견한다면 수정해주세요.

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2Fprrkfv3VazGZaX758Y90%2F14.png?alt=media&amp;token=dad98bb3-cb3a-4817-bec3-dafad57cb8b9" alt=""><figcaption></figcaption></figure>

| SpotLight 속성                | PointLight 속성                |
| --------------------------- | ---------------------------- |
| SpotLight.Visible           | PointLight.Visible           |
| SpotLight.Intensity         | PointLight.Intensity         |
| SpotLight.LightColor        | PointLight.LightColor        |
| SpotLight.AttenuationRadius | PointLight.AttenuationRadius |
| SpotLight.InnerConeAngle    | PointLight.SourceRadius      |
| SpotLight.OuterConeAngle    | PointLight.SourceLength      |

**5. AttachAt, AttachAtTop, AttachTo, Detach 함수가 변경되었어요.**\
스크립트 내에서 사용하고 있다면, **Ctrl+Shift+F**로 찾아서 수정해주세요.

* **AttachAt / AttachAtTop / Detach** 의 변경사항이에요.

<table><thead><tr><th width="356">기존</th><th>변경</th></tr></thead><tbody><tr><td><mark style="color:red;">Character</mark>:<strong>AttachAt</strong>(<mark style="color:blue;">Object</mark>)<br><mark style="color:red;">Character</mark>:<strong>AttachAtTop</strong>(<mark style="color:blue;">Object</mark>)</td><td><mark style="color:blue;">Object</mark>:<strong>AttachCharacter</strong>(<mark style="color:red;">Character</mark>, Enum.AttachPoint.Top)</td></tr><tr><td><mark style="color:red;">Character</mark>:<strong>Detach</strong>()<br><mark style="color:red;">Character</mark>:<strong>Detach</strong>(Vector.new(0, 0, 100))</td><td><mark style="color:blue;">Object</mark>:<strong>DetachAllCharacter</strong>() <mark style="color:blue;">Object</mark>:<strong>DetachAllCharacter</strong>(Vector.new(0, 0, 100))<br>                                                                <mark style="color:blue;">Object</mark>:<strong>DetachCharacter</strong>(<mark style="color:red;">Character</mark>)                                                                    <mark style="color:blue;">Object</mark>:<strong>DetachCharacter</strong>(<mark style="color:red;">Character</mark>, Vector.new(0, 0, 100)) |</td></tr></tbody></table>

참고❕

Attach 시 캐릭터를 붙일 지점을 정할 수 있는 Enum.AttachPoint 의 종류를 아래에서 참고해주세요.

| 종류     | 위치     |
| ------ | ------ |
| Top    | 위쪽 중앙  |
| Center | 중앙     |
| Right  | 오른쪽 중앙 |
| Left   | 왼쪽 중앙  |

참고❕

<mark style="color:blue;">Object</mark>:**DetachAllCharacter**() 는 해당 <mark style="color:blue;">Object</mark>에 Attach된 모든 캐릭터들을 Detach 하는 함수에요.

<mark style="color:blue;">Object</mark>:**DetachCharacter**(<mark style="color:red;">Character</mark>) 는 해당 <mark style="color:blue;">Object</mark>에 Attach된 캐릭터 중 <mark style="color:red;">지정된 캐릭터</mark>를 Detach 하는 함수에요.

* **AttachTo / Detach** 변경사항이에요.

**사용 객체가 Mesh인 경우,** 다음과 같이 변경해주세요.

| 기존                                                                                                         | 변경                                                                                                                                                                                                    |
| ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:blue;">Mesh</mark>:**AttachTo**(<mark style="color:red;">Player</mark>, Enum.Bone.Head) | <mark style="color:red;">Character</mark>:**AttachObject**(<mark style="color:blue;">Mesh</mark>, Enum.Bone.Head)                                                                                     |
| <mark style="color:blue;">Mesh</mark>:**Detach**()                                                         | <p><mark style="color:red;">Character</mark>:<strong>DetachAllObject</strong>()<br><mark style="color:red;">Character</mark>:<strong>DetachObject</strong>(<mark style="color:blue;">Mesh</mark>)</p> |

**사용 객체가 Item인 경우,** 다음과 같이 변경해주세요.

Item 객체를 EquipInventoryItem 함수로 장착하면, \
다른 처리 없이도 캐릭터에 붙을 수 있도록 변경되었어요.

<figure><img src="https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FpQYJHYYkkYvhdtasqSzT%2F15.png?alt=media&amp;token=42a9b6aa-ab75-419b-b78f-768cb9bba235" alt=""><figcaption></figcaption></figure>

(1) EquipEvent 함수에 Item을 AttachTo 처리한 스크립트가 있다면 삭제 후,

(2) Item을 붙일 Bone을 Item 객체의 프로퍼티에서 설정해주세요.
