:DitoLand
Studio ManualAPI ReferenceVideo TutorialSample
  • DitoLand Developer
  • 📚Glossary
  • 🥳EVENT
    • 2024 메타버스 개발자 경진대회
    • 🎊[종료] 🖥 전남관광메타버스 스탬프 투어 인증 이벤트
  • Notice
    • 약관 개정(2024.06.17)
    • 약관 개정 (2024.03.04)
    • 약관 개정 (2023.08.25)
    • 약관 개정 (2022.12.14)
  • Manual
    • Studio
    • Resources
    • Studio Workflow Tips
    • NPC
    • NavMeshVolume
    • Land Teleport
    • Enterprise Account
    • Enterprise Studio Manual
    • Coroutine
    • AddTimeEvent
    • SaveUserData
    • Set Object Parameter
    • Toolbox Upload
    • Debugging (Breakpoint)
    • Gun Toy
    • Coupon / Event Key
    • Optimization
    • AI FSM
    • SpreadSheet
    • Mod Kit
    • AddReplicateValue / ConnectChangeEventFunction
    • Event Execution Order
    • WorldTree Search Filter
    • Object
    • Coordinate
    • Inworld Product
    • Management UserData & Leaderboard
    • Channel
    • World Event
    • Matchmaking
    • Collecting Game Logs
    • External Avatar
  • Coding Style
  • API Reference
    • Global
      • Variables
    • Lua
      • Built-in
      • NotSupport
    • Enums
      • AttachPoint
      • Bone
      • CharacterType
      • ChatCategoryType
      • ChatVisibleType
      • CollisionResponse
      • ControlMode
      • DivideTeamType
      • EventKeyState
      • InputMode
      • InventoryState
      • Key
      • KeyInputType
      • LuckyDrawOrderState
      • MaterialType
      • MediaStateType
      • ModeAnimStateType
      • ObjectSelectType
      • ObjectType
      • PathFollowingStatus
      • PointSpawnType
      • ProgressFillType
      • ProjectionType
      • QuickSlotState
      • ReplicateType
      • ScrollOrientationType
      • SimulatePhysicsType
      • SpawnType
      • TeamType
      • TeleportErrorType
      • TouchType
      • TransformPlayType
      • UIDisplayType
      • UIWidgetType
      • WidgetAnchorType
    • Common
      • BindEvent
      • Character
      • Collision
      • Color
      • CouponReturnData
      • DateTime
      • Environment
      • EventKeyReturnData
      • FactorPhysics
      • FiniteState
      • FiniteStateMachine
      • Game
      • GameStatisticsData
      • HitResult
      • Item
      • LandTransferData
      • Matrix
      • MouseHitResult
      • Object
      • Physics
      • ScriptPhase
      • TimeEvent
      • Track
      • Vector
      • WorldObject
    • Client
      • AnimStateBase
      • AnimStateMachine
      • AnimStateMachineSetting
      • BlendAnimationDataSetting
      • BlendAnimState
      • BlendAnimStateSetting
      • Button
      • Camera
      • CameraClient
      • Character
      • CharacterAnimationSetting
      • CharacterAppearanceSetting
      • CharacterBaseSetting
      • CharacterClient
      • CharacterSetting
      • Collider
      • Collision
      • DPad
      • Environment
      • FiniteStateMachine
      • Frame
      • FX
      • Game
      • GridBox
      • HyperLinkButton
      • Image
      • Input
      • InputGroup
      • InventoryBox
      • Item
      • ListView
      • LocalPlayer
      • Media
      • MediaView
      • NPC
      • ObjectGroup
      • ObjectNoneClient
      • PDFView
      • Physics
      • PointLight
      • ProgressBar
      • RemotePlayer
      • ScreenButton
      • ScreenUI
      • Script
      • ScrollBox
      • SequenceAnimState
      • SequenceAnimStateSetting
      • Sound
      • SpotLight
      • StaticMesh
      • SurfaceUI
      • Text
      • TextBox
      • UIScene
      • WebBrowser
      • WebForum
      • WidgetBase
      • YouTubeView
    • Server
      • Character
      • CharacterAnimationSetting
      • CharacterAppearanceSetting
      • CharacterBaseSetting
      • CharacterServer
      • CharacterSetting
      • Collider
      • Collision
      • Environment
      • FactorPhysics
      • FiniteStateMachine
      • FX
      • Game
      • Item
      • Media
      • NPC
      • Physics
      • Player
      • PointLight
      • Script
      • ScriptObjectGroup
      • ScriptObjectNoneServer
      • Sound
      • Spawner
      • SpawnPoint
      • SpawnPointGroup
      • SpotLight
      • StaticMesh
      • Team
      • UIScene
      • Widget
  • Tutorial
    • Script Tutorial
      • 스크립트 심화 강좌
        • 1. 스크립트의 종류, 호출 순서, 호출, 통신
        • 2. 동기화, 파라미터, 예외사항
        • 3. 디토랜드로 루아 활용하기
  • Sample
    • Scripting
    • Event
    • Collision & Physics
    • Transform
    • UI
    • Camera
    • Input
    • FX
    • Sound
  • Guide for Developers
    • Guide For Unity Developer
    • Guide For Roblox Developer
  • Release Note
    • Script Changes
      • 1.5.0 Map Changes
      • 1.2.0 Map Changes
      • 1.1.0 Map Changes
      • 1.0.0 Map Changes
      • 0.9.0 Map Changes
      • 0.7.0 Map Changes
      • 0.6.0 Map Changes
      • 0.5.0 Map Changes
      • 0.4.0 Map Changes
      • 0.3.0 Map Changes
      • 0.2.0 Map Changes
    • Known Issues
Powered by GitBook
On this page
  • 기존 맵 파일 최신화 방법
  • 스크립트 변경 사항

Was this helpful?

  1. Release Note
  2. Script Changes

0.9.0 Map Changes

Previous1.0.0 Map ChangesNext0.7.0 Map Changes

Last updated 2 years ago

Was this helpful?

기존 맵 파일 최신화 방법

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

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

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

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

  5. 기존에 있던 스크립트를 확인 후, 새로 붙여넣기 한 스크립트에 옮겨야 하는 부분이 있다면 적용해주세요.

  6. 모두 적용했다면, 기존에 있던 스크립트를 삭제해주세요.

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



스크립트 변경 사항

1. 조작 그룹

조작 그룹의 구조가 기존과 다르게 변경되었어요.

아래 변경 사항을 확인하신 후, 조작 그룹을 사용하는 곳이 있다면 수정해주세요. ✏

  • 조작 그룹 및 이벤트 추가 함수

기존
변경

Input:AddGroup("DefaultInput")

DefaultInput = Input:AddGroup("DefaultInput")

Input:AddAxisKeyEvent("DefaultInput", "MoveForward", .. )

DefaultInput:AddAxisKeyEvent("MoveForward", .. )

Input:AddActionKeyEvent("DefaultInput", "Jump", .. )

DefaultInput:AddActionKeyEvent("Jump", .. )

  • 키 이벤트 연결 함수

기존
변경

LocalPlayer:ProcessInputAxisEvent( .. )

DefaultInput:ProcessInputAxisEvent( .. )

LocalPlayer:ProcessInputActionEvent( .. )

DefaultInput:ProcessInputActionEvent( .. )

LocalPlayer:ProcessTouchAxisEvent( .. )

DefaultInput:ProcessTouchAxisEvent( .. )

LocalPlayer:ProcessTouchActionEvent( .. )

DefaultInput:ProcessTouchActionEvent( .. )

  • 조작 이벤트 제거 함수

기존
변경

Input:RemoveActionKeyEvent("DefaultInput", "Jump", .. )

DefaultInput:RemoveActionKeyEvent("Jump", .. )

Input:RemoveAxisKeyEvent("DefaultInput", "Turn", .. )

DefaultInput:RemoveAxisKeyEvent("Turn", ..)

2. 리더보드

게임 통계 데이터 객체를 생성할 수 있는 함수가 추가되었어요. ✨

이에 따라, 기존 리더보드 함수에서 저장소 키 이름을 작성했던 인자에, 게임 통계 데이터 객체를 작성하도록 변경되었어요. 🔧

함수 이름
기존 인자
변경된 인자

NewGameStatisticsData

(게임 통계 데이터 객체를 생성하는 함수가 추가되었습니다)

저장소 키 이름, 오름차순 정렬 여부, 덮어쓰기 여부

GetGameStatisticsData

저장소 키 이름, 덮어쓰기 여부, Offset 값, Count 값, 연결 함수

게임 통계 데이터, Offset 값, Count 값, 연결 함수

SaveGameStatisticsData

PlayerID, 저장소 키 이름, 저장할 데이터, 덮어쓰기 여부, 오름차순 정렬 여부

PlayerID, 게임 통계 데이터, 저장할 데이터

SendToClient_GameStatisticsData

PlayerID, 저장소 키 이름, 오름차순 정렬 여부, Offset 값, Count 값

PlayerID, 게임 통계 데이터, Offset 값, Count 값

Broadcast_GameStatisticsData

저장소 키 이름, 오름차순 정렬 여부, Offset 값, Count 값

게임 통계 데이터, Offset 값, Count 값

❕ 아래에서 리더보드 함수의 사용 예시를 확인해주세요. 😀

  • NewGameStatisticsData (string KeyString, bool Ascending, bool Overwrite)

    local SaveKeyName = "LeaderBoard2022" --저장소 키 이름이에요.
    local LeaderBoardData = nil           --게임 통계 데이터를 저장할 변수에요.
    
    --게임 통계 데이터 객체를 만들어요. (저장소 키 이름, 오름차순 정렬 여부, 덮어쓰기 여부)
    LeaderBoardData = Game:NewGameStatisticsData(SaveKeyName, true, true)

  • GetGameStatisticsData (GameStatisticsData Data, number Offset, number Count, function CallBackFunction)

    local LeaderBoard = {} --리더보드 테이블이에요.
    
    --얻은 데이터를 리더보드 테이블에 저장해요.
    local function CompleteAquireData(count, data)
        for i = 1, count do            
            LeaderBoard[data[i].PlayerID] = data[i].Value
        end
    end
    
    --LeaderBoardData 객체에 해당하는 데이터를 얻을 수 있어요. (게임 통계 데이터, Offset 값, Count 값, 연결 함수)
    Game:GetGameStatisticsData(LeaderBoardData, 0, 10, CompleteAquireData)

  • SaveGameStatisticsData (number PlayerID, GameStatisticsData Data, number SaveValue)

    function AddLeaderBoard(player, saveValue)   
        --특정 유저의 게임 통계 데이터를 저장할 수 있어요. (PlayerID, 게임 통계 데이터, 저장할 데이터)
        Game:SaveGameStatisticsData(player:GetPlayerID(), LeaderBoardData, saveValue)
    end

  • SendToClient_GameStatisticsData (number PlayerID, GameStatisticsData Data, number Offset, number Count)

    local function RefreshLeaderboard()		
        local playerList = Game:GetAllPlayer()
        
        for i = 1, #playerList do 
    	--특정 플레이어의 클라이언트에 리더보드 데이터를 보낼 수 있어요. (PlayerID, 게임 통계 데이터, Offset 값, Count 값)
            Game:SendToClient_GameStatisticsData**(**playerList[i], LeaderBoardData, 0, 10)
        end
    end

  • Broadcast_GameStatisticsData (GameStatisticsData Data, number Offset, number Count)

    local function RefreshAllPlayer()      
        --모든 플레이어의 클라이언트에 리더보드 데이터를 보낼 수 있어요. (게임 통계 데이터, Offset 값, Count 값)
        Game:Broadcast_GameStatisticsData(LeaderBoardData, 0, 10)
    end

자세한 활용 방법은 CrossJump 템플릿에 있는 리더보드 스크립트를 참고해주세요. 🐸