如何利用Reworld作一個一鍵吸空投箱的效果

功能效果展現

11.gif

運行環境

Win7,Win8,Win10html

Reworld版本 體驗版redis

vc_redist.x64 運行環境api

針對零基礎讀者的補充

下載安裝 Reworld對應版本服務器

Reworld官網連接http://www.reworlder.com/編輯器

下載後安裝後註冊帳號打開空地圖工具

下載安裝vc_redist.x64.rar運行環境spa

redist.x64下載連接設計

思路分析

咱們想要實現玩家按鍵吸空投箱的功能,首先咱們須要設計一個技能的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)

2、補充說明

1.__什麼是工做區?

工做區中的對象是會被可視化顯示到3D場景中的,而且只有在工做區中的對象纔會發生物理交互。

2.__什麼是服務器腳本?

只會在服務器運行的Lua腳本代碼,用於編寫服務器邏輯。

3.__什麼是客戶端腳本?

_只會在客戶端執行的腳本,執行的邏輯和表現也只會在本地客戶端展示;可在如下幾個文件目錄下自動執行,客戶端腳本在「工做區」下不會自動執行,須要放在如下對象裏面:
1. __客戶端最早加載 。
2. 工做區中的角色模型玩家初始化中的角色初始化腳本,在運行後會自動移動到角色模型下。
3. 玩家列表中的玩家玩家初始化中的玩家初始化腳本,在運行後會自動移動到玩家下
4. 玩家玩家界面界面初始化的腳本,在運行後會自動移動到玩家界面下。
5. 玩家的揹包,例如工具裏面的。_

4.什麼是2D容器界面?

2D容器界面是顯示在玩家屏幕上的2DUI對象的主要存儲對象。UI對象若要顯示在編輯器中,必須做爲容器控件的子級。

遊戲運行後,存放在界面初始化_StarterUI下的界面會複製到玩家界面下,只有在玩家界面GameUI下的界面才能在遊戲中顯示。_

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

相關文章
相關標籤/搜索