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下的界面才能在遊戲中顯示。_
好了,接下來咱們開始遊戲,點擊吸空投這個按鈕,全部的空投箱就都被咱們吸過來啦。若是有什麼問題或者有更好的實現方式,你們能夠在下方積極交流討論,咱們也會參與進來和你們一塊兒分享經驗,指望能和你們共同進步~~