تُعتبر المشاعر عنصرًا أساسيًا في أي تجربة اجتماعية. يهدف EmoteBar نموذج المطور إلى توفير وسيلة متاحة وقابلة للتخصيص للاعبين لتسهيل التفاعل الاجتماعي المعني.
استخدام النموذج
التثبيت
لاستخدام نموذج EmoteBar في تجربة:
من قائمة نافذة في الاستوديو أو شريط أدوات علامة الصفحة الرئيسية، افتح صندوق الأدوات واختر علامة متجر المنشئين.

تأكد من تحديد فرز النماذج، ثم انقر على زر عرض الجميع لفئات الفئات.

ابحث وانقر على بلاطة الحزم.
ابحث عن نموذج شريط المشاعر وانقر عليه، أو اسحبه وأفلته في العرض ثلاثي الأبعاد.

في نافذة المستكشف، انقل النموذج الكامل EmoteBar إلى ReplicatedStorage. عند تشغيل التجربة، سيبدأ النموذج في العمل.
التهيئة
يتم تكوين النموذج مسبقًا مع 7 مشاعر ويمكن تخصيصه بسهولة باستخدام مشاعرك وخيارات العرض الخاصة بك. بالإضافة إلى ذلك، إذا كان لدى اللاعب أي مشاعر من أحداث Roblox السابقة مثل Lil Nas X أو Royal Blood أو Twenty One Pilots، فسيتم إضافة تلك المشاعر تلقائيًا إلى قائمة المشاعر المتاحة.
في ServerScriptService، أنشئ Script جديدًا وأعد تسميته إلى ConfigureEmotes.

الصق الكود التالي في نص ConfigureEmotes الجديد. تعيين useDefaultEmotes لـ false يتجاوز المشاعر الافتراضية ويسمح لك بتعريف مشاعر مخصصة من خلال وظيفة setEmotes.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "Hello",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "Applaud",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
مشاعر مميزة
تتشكل شعور مميز عندما يؤدي عدة لاعبين في نفس المنطقة نفس الشعور في نفس الوقت. مع انضمام المزيد من اللاعبين، يصبح الشعور المميز أكبر. عندما يتوقف اللاعبون عن أداء الشعور، يصبح الشعور المميز أصغر حتى يختفي في النهاية.

السرعة
سرعة الشعور هي السرعة التي يتم تشغيله بها عندما يتم الضغط على زره مرة واحدة. يتم تحديد السرعة الافتراضية للشعور بواسطة defaultTempo الخاص به. يمكن زيادة أو تقليل سرعة الشعور من خلال الضغط على زره أسرع أو أبطأ.
مرجع API
الأنواع
شعور
تمثل كل شعور بواسطة قاموس يحتوي على أزواج المفتاح-القيمة التالية:
| المفتاح | النوع | الوصف |
|---|---|---|
| name | string | اسم الشعور، على سبيل المثال "Shrug". |
| animation | string | معرّف الأصل لتحريك الشعور. |
| image | string | معرّف الأصل لصورة الشعور في واجهة المستخدم الرسومية. |
| defaultTempo | number | عامل السرعة الافتراضي لتشغيل الرسوم المتحركة للشعور. على سبيل المثال، ستلعب سرعة 2 الرسوم المتحركة بمعدل ضعف سرعتها الطبيعية. يجب أن تكون أكبر من 0. |
| isLocked | bool | ما إذا كان الشعور "مقفلًا" عن التنشيط. |
التعدادات
EmoteBar.GuiType
| الاسم | الملخص |
|---|---|
| EmoteBar | الشكل الافتراضي حيث يتم عرض المشاعر في شريط على طول أسفل الشاشة، مفصولة إلى "صفحات" فردية. |
| EmoteWheel | نسخة حيث يتم عرض المشاعر في حلقة عندما ينقر اللاعب أو يضغط على شخصية اللاعب. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
الوظائف
configureServer
configureServer(config: table)
يتجاوز إعدادات التكوين الافتراضية على جانب الخادم من خلال المفاتيح / القيم التالية في جدول config. لا يمكن استدعاء هذه الوظيفة إلا من Script وستتكرر التغييرات تلقائيًا إلى جميع العملاء.
| المفتاح | الوصف | الافتراضي |
|---|---|---|
| useDefaultEmotes | ما إذا كانت المشاعر الافتراضية المقدمة مدرجة أم لا. | true |
| useMegaEmotes | يمكن أو تمنع ميزة المشاعر المميزة. | true |
| emoteMinPlayers | أقل عدد من اللاعبين الذين يؤدون نفس الشعور للمساهمة في شعور مميز. | 3 |
| emoteMaxPlayers | أعلى عدد من اللاعبين الذين يؤدون نفس الشعور للمساهمة في شعور مميز. | 50 |
| playParticles | يمكن أو تمنع عرض المشاعر التي يؤديها اللاعبون كجزيئات عائمة فوق رؤوسهم. | true |
| sendContributingEmotes | يمكن أو تمنع إرسال أيقونة صغيرة للشعور للمساهمة في الشعور المميز. | true |
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({emoteMinPlayers = 2,playParticles = false,})
configureClient
configureClient(config: table)
يتجاوز إعدادات التكوين الافتراضية على جانب العميل من خلال المفاتيح / القيم التالية في جدول config. لا يمكن استدعاء هذه الوظيفة إلا من LocalScript. اعتمادًا على قيمة guiType، تنطبق الخيارات في علامات التبويب المذكورة.
| المفتاح | الوصف | الافتراضي |
|---|---|---|
| guiType | يحدد الشكل الذي ستأخذه واجهة المستخدم لعرض المشاعر (EmoteBar.GuiType). | EmoteBar |
| useTempo | يمكن أو تمنع ميزة السرعة حيث يمكن للمستخدمين التحكم في مدى سرعة أو بطء تشغيل مشاعرهم عن طريق تفعيل نفس الشعور بشكل متكرر. | true |
| tempoActivationWindow | المدة الزمنية، بالثواني، التي يمتلكها المستخدم بين تفعيل المشاعر المتتالية حتى يُحسب ذلك كجزء من السرعة. | 3 |
| lockedImage | صورة لعرضها فوق المشاعر المقفلة. | "rbxassetid://6905802778" |
LocalScript - Emote Barlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteBar,maxEmotesPerPage = 6,nextPageKey = Enum.KeyCode.Z,prevPageKey = Enum.KeyCode.C,})
LocalScript - Emote Wheellocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
setEmotes
setEmotes(emotes: table)
يحدد المشاعر المخصصة للاستخدام. سيتم إضافة هذه إلى الافتراضية إذا كانت useDefaultEmotes هي true، أو ستحل محل الافتراضية إذا كانت useDefaultEmotes هي false. لا يمكن استدعاء هذه الوظيفة إلا من Script وستتكرر التغييرات تلقائيًا إلى جميع العملاء.
انظر شعور لهيكل كل شعور يتم تمريره إلى هذه الوظيفة.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "Hello",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "Applaud",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
setGuiVisibility
setGuiVisibility(visible: boolean)
يظهر أو يخفي واجهة مستخدم المشاعر. لا يمكن استدعاء هذه الوظيفة إلا من LocalScript على عميل معين.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.setGuiVisibility(false)
getEmote
يحصل على شعور بالاسم. يعيد nil إذا لم يتم العثور على الشعور. لا يمكن استدعاء هذه الوظيفة إلا من LocalScript على عميل معين.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")
playEmote
playEmote(emote: شعور)
تشغل الشعور المعطاة وتطلق حدث emotePlayed على الخادم إذا كان متصلاً. لا يمكن استدعاء هذه الوظيفة إلا من LocalScript على عميل معين.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")EmoteBar.playEmote(shrug)
lockEmote
lockEmote(emoteName: string)
يقفل الشعور بالاسم المعطى. لا يمكن استدعاء هذه الوظيفة إلا من LocalScript على العميل.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.lockEmote("Applaud")
unlockEmote
unlockEmote(emoteName: string)
يفتح الشعور بالاسم المعطى. لا يمكن استدعاء هذه الوظيفة إلا من LocalScript على العميل.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.unlockEmote("Applaud")
الأحداث
emotePlayed
يتم تشغيله عندما يقوم أي عميل بتشغيل شعور. يمكن فقط الاتصال بهذا الحدث في LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "played", emote.name)
end)
lockedEmoteActivated
يتم تشغيله عندما ينقر عميل على شعور مقفلة. يمكن فقط الاتصال بهذا الحدث في LocalScript.
| المعلمات | |
|---|---|
| emote: شعور | الشعور المقفلة التي تم تفعيلها. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.lockedEmoteActivated:Connect(function(emote)
print(Players.LocalPlayer, "clicked", emote.name)
end)