如何做一個英雄聯盟中的亮牌子功能

功能效果展示

 

運行環境

Win7,Win8,Win10

Reworld版本 體驗版

vc_redist.x64 運行環境

 

針對零基礎讀者的補充

下載安裝 Reworld對應版本

Reworld官網鏈接http://www.reworlder.com/

Reworld創作者之家論壇:http://bbs.reworlder.com

下載後安裝後註冊賬號打開空地圖

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

redist.x64下載鏈接

 

思路分析

想要實現亮牌子的功能,首先我們需要一個觸發事件,在英雄聯盟中,Ctrl+6就可以亮出自己的牌子,Ctrl+6就是一個觸發事件。在重啓世界編輯器裏,我們可以製作一個按鈕控件作爲嘲諷技能,點擊按鈕,觸發亮牌子的功能。另外我們還需要製作自己牌子的圖標,也就是製作一個3D廣告牌容器,在3D廣告牌容器下創建一個圖像控件,將我們嘲諷的圖標導入就可以了。

 

功能搭建

一、圖標搭建過程

首先我們需要在工作區裏創建一個3D廣告牌容器,重命名爲LaughUI。在3D廣告牌容器下創建圖像控件,導入一個我們下載好的牌子圖標。如下圖所示:

 

二、嘲諷技能搭建過程

1.在界面初始化下創建一個2D容器界面,重命名爲LaughPanel,在2D容器界面下創建一個按鈕控件,重命名爲LaughBtn,在按鈕控件創建一個文本控件,調整大小和位置。如下圖所示:

2.在按鈕控件下創建一個客戶端腳本。如下圖所示:

編寫客戶端腳本如下:

local btn=script.Parent
btn.OnClick:Connect(function()
    MessageEvent.FireServer("嘲諷")        --向服務器發送消息
end)

 

三、服務器腳本搭建過程

在服務器邏輯下創建一個服務器腳本。如下圖所示:

編寫服務器腳本如下:

local LaughUI = WorkSpace.LaughUI        --嘲諷
 
local Yset = 0
local Sset = 0.1
local isUp = false
local isdown = false
Players.PlayerAdded:Connect(function(Uid) --玩家進入遊戲時執行創建零件的方法
     hero = Players:GetPlayerByUserId(Uid)--獲取玩家實體
    hero.AvatarAdded:Connect(function(avatar)  -- 角色被加載事件
        print(avatar.Name)

MessageEvent.ServerEventCallBack("嘲諷"):Connect(function()
    isUp = true
    LaughUI.圖像控件.IsVisable = true
    coroutine.start(function()
        coroutine.wait(3.5)
        isUp = false
        isdown = true
    end)
end)
--嘲諷UI跟隨人物並實現動態效果
 function follow()
  
    if isUp and LaughUI.WorldSpaceOffset.y <2 then
        Yset = Yset + 0.007
        Sset = Sset + 0.0017
    end
    if isdown and LaughUI.WorldSpaceOffset.y > 1 then
        Yset = Yset - 0.007
        Sset = Sset - 0.0017
    elseif LaughUI.WorldSpaceOffset.y < 1 and isUp == false then
        isdown = false
        LaughUI.圖像控件.IsVisable = false
    end
    LaughUI.圖像控件.LocalScale = Vector3.New(Sset,Sset,Sset)
    LaughUI.WorldSpaceOffset = Vector3.New(hero.Avatar.Position.x,hero.Avatar.Position.y+Yset,hero.Avatar.Position.z)
end
 GameRun.Update:Connect(function()
	
    follow()
end)

--嘲諷技能回調
    end)
end)

 

補充說明

1.什麼是工作區?

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

 

2.什麼是服務器腳本?

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

 

3.什麼是客戶端腳本?

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

 

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

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

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

 

5.什麼是按鈕控件?

按鈕控件用於響應來自用戶的事件,經常用於啓動或者確認某項操作使用。

 

6什麼是文本控件?

文本控件顯示非交互文本,經常用於標題或者標籤使用。

 

好了,接下來我們開始遊戲,點擊嘲諷這個按鈕,我們控制的角色頭上就會出現我們預先設定好的嘲諷圖片啦。如果有什麼問題或者有更好的實現方式,大家可以在下方積極交流討論,我們也會參與進來和大家一起分享經驗,期望能和大家共同進步~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章