存储服务用于存储玩家的数据,在玩家下次进游戏时可以读取这些数据
使用存储服务做一个登录次数的提示,步骤如下:
第一步:
在界面初始化中创建2D界面容器,并在容器下创建文本控件和一个按钮控件,调整控件的位置和大小,方便观察。文本框用来显示玩家登录时提示的文字,按钮用来点击更新和保存登录次数数值。界面如下:
第二步:
在玩家初始化->玩家初始化脚本下增加客户端脚本。
代码如下:
local uipanel = GameUI.欢迎--获取界面容器
local uitxt = uipanel.登陆--获取登录按钮
local savebutton = uipanel.保存--获取保存按钮
MessageEvent.ClientEventCallBack("显示欢迎界面"):Connect(function(loadtime)--显示登录提示界面的
local person = Players:GetLocalPlayer()--获取玩家
uitxt.Text = "尊敬的"..person.Name.."欢迎第"..loadtime.."次登陆游戏!"--设置显示文本
end)
savebutton.OnClick:Connect(function()--保存按钮点击触发保存游戏方法
uipanel.IsVisable = false--关闭界面
MessageEvent.FireServer("保存游戏")--发送消息至服务器保存游戏
end)
第三步:
在服务器逻辑中增加服务器代码:
Players.PlayerAdded:Connect(function(Uid) --玩家加载时触发
local player = Players:GetPlayerByUserId(Uid)--获取玩家实体
local timeplay = RWObject.Create("IntValue")--插入一个整数值
local key = Uid.."timeplay"--定义一个key
timeplay.Name = "TimePlay"
local saveValue = PlayerStoreData:GetValue(Uid, key)
if saveValue then--获取存储在服务器中的值
timeplay.Value = PlayerStoreData:GetValue(Uid, key)
print("获取存储值")
else
timeplay.Value = 1
print("自定义存储值")
end
PlayerStoreData:SetValue(Uid, key, timeplay.Value)--重新设置存储在服务器中的值
timeplay.Parent = WorkSpace
player.AvatarAdded:Connect(function(avatar) -- 角色被加载显示客户端
MessageEvent.FireClient(Uid,"显示欢迎界面",timeplay.Value)
end)
end)
function SaveTime(plrid)--定义保存游戏次数的方法
local key = plrid.."timeplay"--定义一个key
WorkSpace:WaitForChild("TimePlay").Value = WorkSpace:WaitForChild("TimePlay").Value + 1--值加1
PlayerStoreData:SetValue(plrid, key, WorkSpace.TimePlay.Value)--重新设置存储在服务器中的值
end
MessageEvent.ServerEventCallBack("保存游戏"):Connect(SaveTime)--接收消息后执行保存方法
第四步:
存储的服务测试需要将游戏发布后再手机端进行测试。点击编辑界面z左上角的发布按钮,并跟随步骤将游戏发布。
第五步:打开手机端APP,在我的中找到发布的游戏,进入游戏。
第六步:观察提示的登录次数,然后点击按钮。之后点击左上角的齿轮按钮退出游戏。然后再次进入游戏,观察提示的登录次数。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。