功能效果展示
運行環境
Win7,Win8,Win10
Reworld版本 體驗版
vc_redist.x64 運行環境
針對零基礎讀者的補充
下載安裝 Reworld對應版本
Reworld官網鏈接:http://www.reworlder.com/
Reworld創作者之家論壇:http://bbs.reworlder.com
下載後安裝後註冊賬號打開空地圖
下載安裝 vc_redist.x64.rar運行環境
思路分析
想要製作一個向前發射物體的技能,我們首先需要創建一個按鈕控件作爲技能的按鈕,發射出去的物體我們可以預先創建好,點擊按鈕後,克隆出這個物體,爲它添加一個向前的單位向量,就能實現這個效果了。
功能搭建
一、球球搭建過程
在工作區內創建一個球狀的零件,重命名爲FireBall,取消它的重力和碰撞,修改零件的尺寸和材質。零件的屬性如下圖所示:
二、技能UI搭建過程
在界面初始化下創建一個2D容器界面,重命名爲技能,在2D容器界面下創建一個按鈕控件,修改座標和尺寸。如下圖所示:
核心功能搭建過程
在玩家初始化,角色初始化腳本里創建一個客戶端腳本。如下圖所示:
編寫客戶端腳本如下:
local ava = script.Parent --定義角色實體
local skill_UI = GameUI.技能.按鈕控件 --定義技能3按鈕
local fireball = WorkSpace.FireBall --定義技能3的球
local firelist = RWObject.Create("Folder") --定義球集合的文件夾
firelist.Parent = WorkSpace --文件夾放在工作區
skill_UI.GuiMouseLeftDown:Connect(function()
local PlayerForward = Quaternion.Euler(WorkSpace.CurCamera.Subject.Rotation.x,WorkSpace.CurCamera.Subject.Rotation.y, WorkSpace.CurCamera.Subject.Rotation.z) * Vector3.forward;
local PlayerRotation = Quaternion.Euler(WorkSpace.CurCamera.Subject.Rotation.x,WorkSpace.CurCamera.Subject.Rotation.y + 180, WorkSpace.CurCamera.Subject.Rotation.z);
clofireball = fireball:Clone()
clofireball.Position = ava.Position + PlayerForward + Vector3(0,1,0)
clofireball.Rotation = PlayerRotation:ToEulerAngles();
clofireball.Velocity = PlayerForward * 10
clofireball.Parent = firelist
end)
補充說明
1.什麼是工作區?
工作區中的對象是會被可視化顯示到3D場景中的,並且只有在工作區中的對象纔會發生物理交互。
2.什麼是2D容器界面?
2D容器界面是顯示在玩家屏幕上的2DUI對象的主要存儲對象。UI對象若要顯示在編輯器中,必須作爲容器控件的子級。
遊戲運行後,存放在界面初始化StarterUI下的界面會複製到玩家界面下,只有在玩家界面GameUI下的界面才能在遊戲中顯示。
3.什麼是按鈕控件?
按鈕控件用於響應來自用戶的事件,經常用於啓動或者確認某項操作使用。
4.什麼是客戶端腳本?
只會在客戶端執行的腳本,執行的邏輯和表現也只會在本地客戶端展現;可在以下幾個文件目錄下自動執行,客戶端腳本在“工作區”下不會自動執行,需要放在以下對象裏面:
1. 客戶端最先加載 。
2. 工作區中的角色模型。玩家初始化中的角色初始化腳本,在運行後會自動移動到角色模型下。
3. 玩家列表中的玩家。玩家初始化中的玩家初始化腳本,在運行後會自動移動到玩家下
4. 玩家的玩家界面。界面初始化的腳本,在運行後會自動移動到玩家界面下。
5. 玩家的揹包,例如工具裏面的。
好了,接下來我們開始遊戲,傳送帶上的箭頭貼圖就會隨着傳送帶一起移動啦。如果有什麼問題或者有更好的實現方式,大家可以在下方積極交流討論,我們也會參與進來和大家一起分享經驗,期望能和大家共同進步~~