Win7,Win8,Win10html
Reworld版本 体验版redis
vc_redist.x64 运行环境api
下载安装 Reworld对应版本服务器
Reworld官网连接:http://www.reworlder.com/编辑器
下载后安装后注册帐号打开空地图工具
下载安装vc_redist.x64.rar运行环境spa
咱们想要实现玩家按键吸空投箱的功能,首先咱们须要设计一个技能的UI,点击这个UI后,空投箱移动到玩家的位置,所以咱们须要获取到玩家的坐标,把全部的空投箱组合成一个集合,集合下的全部空投箱朝玩家坐标移动,当到达玩家坐标后中止移动。code
1、空投箱搭建过程
1.首先咱们须要在工做区里建立一个文件夹,重命名为ObjList。在文件夹下建立一个自定义零件,取消锚定后,导入一个在商店里下载好的空投箱模型。以下图所示:htm
2.咱们复制几个ObjList下上一步建立好的空投箱零件,而后分散排布它们的位置,方便咱们观看效果。以下图所示:
2、技能UI搭建过程
在界面初始化下建立一个2D容器界面,重命名为Test,在2D容器界面下建立一个按钮控件,在按钮控件下建立一个文本控件,调整大小和位置。以下图所示:
1、服务器脚本搭建过程
在工做区下建立一个服务器脚本。以下图所示:
编写服务器脚本以下:
local list=WorkSpace.ObjList --获取到要聚拢物体的集合 local ren=nil local MoveTrigger=false --控制聚拢效果的开关 Players.PlayerAdded:Connect(function(Uid) ren= Players:GetPlayerByUserId(Uid) end) MessageEvent.ServerEventCallBack("GatherTogether"):Connect(function()--接收按钮回调 MoveTrigger=true end) local index=0 GameRun.Update:Connect(function() if ren~=nil and MoveTrigger then local objs=list:GetAllChild() --获取objList文件夹下全部子类 index=0 for i=1,#objs,1 do if Vector3.Distance(objs\[i\].Position,ren.Avatar.Position)>1 then --将物体聚拢到人物身边 objs\[i\].Position= Vector3.MoveTowards(objs\[i\].Position,ren.Avatar.Position,0.1) else objs\[i\].Position=objs\[i\].Position index=index+1 end if index==#objs then --当物体所有到达人物身边时中止聚拢 MoveTrigger=false end end end end)
2、客户端搭建过程
咱们在玩家初始化,玩家初始化脚本下建立一个客户端脚本。以下图所示:
编写客户端脚本以下:
GameUI.Test.按钮控件.OnClick:Connect(function() --注册按钮点击事件 MessageEvent.FireServer("GatherTogether") end)
1.__什么是工做区?
工做区中的对象是会被可视化显示到3D场景中的,而且只有在工做区中的对象才会发生物理交互。
2.__什么是服务器脚本?
只会在服务器运行的Lua脚本代码,用于编写服务器逻辑。
3.__什么是客户端脚本?
_只会在客户端执行的脚本,执行的逻辑和表现也只会在本地客户端展示;可在如下几个文件目录下自动执行,客户端脚本在“工做区”下不会自动执行,须要放在如下对象里面:
1. __客户端最早加载 。
2. 工做区中的角色模型。玩家初始化中的角色初始化脚本,在运行后会自动移动到角色模型下。
3. 玩家列表中的玩家。玩家初始化中的玩家初始化脚本,在运行后会自动移动到玩家下
4. 玩家的玩家界面。界面初始化的脚本,在运行后会自动移动到玩家界面下。
5. 玩家的背包,例如工具里面的。_
4.什么是2D容器界面?
2D容器界面是显示在玩家屏幕上的2DUI对象的主要存储对象。UI对象若要显示在编辑器中,必须做为容器控件的子级。
游戏运行后,存放在界面初始化_StarterUI下的界面会复制到玩家界面下,只有在玩家界面GameUI下的界面才能在游戏中显示。_
好了,接下来咱们开始游戏,点击吸空投这个按钮,全部的空投箱就都被咱们吸过来啦。若是有什么问题或者有更好的实现方式,你们能够在下方积极交流讨论,咱们也会参与进来和你们一块儿分享经验,指望能和你们共同进步~~