مطالبات القرب

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

يمكنك إنشاء مطالبات قرب تفاعلية تظهر عندما يقترب المستخدمون من الكائنات في الفضاء ثلاثي الأبعاد، ثم تؤدي إلى إجراءات عند إدخال المستخدم.

يستخدم هذا البرنامج التعليمي مشروع Dungeon Delve كعرض توضيحي. لمتابعة ذلك، افتحه في الاستوديو قبل المتابعة.

خيار التحرير في الاستوديو من الصفحة الرئيسية للعبة

إنشاء مطالبة

تُولد المطالبات المعروضة على الشاشة بواسطة كائن ProximityPrompt المرتبط بـ Attachment أو BasePart أو Model.

  1. حدد نموذج PrisonDoor في عرض 3D أو من Explorer (WorkspacePromptObjectsPrisonDoor).

  2. قم بتوسيع شجرتها وحدد كائن Door.

  3. وضع مطالبة على Attachment يمنحك مزيدًا من التحكم في مكان حدوث نقطة التفاعل، مقارنة بوضعها مباشرة على الجزء/النموذج. أدخل Attachment جديدة وأعد تسميتها إلى PromptAttachment.

  4. ابحث عن خاصية Position للملحق الجديد واضبطها على -2.25، -0.5، -0.5. سيؤدي ذلك إلى تحريكها أمام ثقب المفتاح في الباب.

  5. مرر فوق PromptAttachment وأدخل كائن ProximityPrompt جديد.

مظهر المطالبة

تتكون المطالبات من ثلاثة عناصر رئيسية، يمكن التحكم في كل منها من خلال الخصائص التالية:

  • ObjectText — اسم اختياري للكائن الذي يتم التفاعل معه.
  • ActionText — اسم إجراء اختياري يظهر للمستخدم.
  • KeyboardKeyCode — مفتاح لوحة المفاتيح الذي سيؤدي إلى تفعيل المطالبة.
  • GamepadKeyCode — زر وحدة التحكم الذي سيؤدي إلى تفعيل المطالبة.

لتخصيص مظهر مطالبة باب السجن، قم بإجراء التغييرات التالية:

  1. في نافذة Properties، ابحث عن خاصية ObjectText واكتب Door.

  2. بالنسبة لخاصية ActionText، اكتب Pick Lock.

مسافة التفعيل

تظهر المطالبات عندما يتحرك شخصية المستخدم ضمن نطاق MaxActivationDistance المحدد لكائن المطالبة.

تعمل القيمة الافتراضية بشكل جيد في معظم الحالات، ولكن يمكنك دفع تفاعل المستخدم أقرب إلى القفل عن طريق تغيير MaxActivationDistance إلى 4.

مدة الإمساك

تحدد قيمة خاصية HoldDuration مدى سرعة تفعيل إجراء المطالبة، بالثواني. نظرًا لأن هذا الباب يجب أن يتم فتحه، قم بتغيير خاصية HoldDuration إلى 4.

تنفيذ إجراء

أفضل طريقة لاكتشاف أحداث المطالبة هي من خلال ProximityPromptService — هذا يتيح لك اكتشاف الأحداث مركزيًا دون الحاجة إلى إرفاق نص برمجي بكل كائن مطالبة.

إطار عمل أساسي كما يلي:

local ProximityPromptService = game:GetService("ProximityPromptService")
-- اكتشاف متى يتم تفعيل المطالبة
local function onPromptTriggered(promptObject, player)
end
-- اكتشاف متى يبدأ الإمساك بالمطالبة
local function onPromptHoldBegan(promptObject, player)
end
-- اكتشاف متى ينتهي الإمساك بالمطالبة
local function onPromptHoldEnded(promptObject, player)
end
-- ربط أحداث المطالبة بوظائف المعالجة
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
الحدثالوصف
PromptTriggeredيتم تشغيله عندما يتفاعل المستخدم مع مطالبة (بعد مدة المطالبة التي تحتوي على HoldDuration غير الصفرية).
PromptButtonHoldBeganيتم تشغيله عندما يبدأ المستخدم في التفاعل مع مطالبة تحتوي على HoldDuration غير الصفرية.
PromptButtonHoldEndedيتم تشغيله عندما يتوقف المستخدم عن التفاعل مع مطالبة تحتوي على HoldDuration غير الصفرية.

في مشروع Dungeon Delve، يتم إدارة هذه الأحداث بواسطة نص PromptEvents داخل ServerScriptService.

داخل النص، تستدعي الأحداث أعلاه ببساطة وظائف داخل ModuleScript ObjectActions، الموجودة أيضًا في ServerScriptService.

local ProximityPromptService = game:GetService("ProximityPromptService")
local ServerScriptService = game:GetService("ServerScriptService")
local ObjectActions = require(ServerScriptService.ObjectActions)
-- اكتشاف متى يتم تفعيل المطالبة
local function onPromptTriggered(promptObject, player)
ObjectActions.promptTriggeredActions(promptObject, player)
end
-- اكتشاف متى يبدأ الإمساك بالمطالبة
local function onPromptHoldBegan(promptObject, player)
ObjectActions.promptHoldBeganActions(promptObject, player)
end
-- اكتشاف متى ينتهي الإمساك بالمطالبة
local function onPromptHoldEnded(promptObject, player)
ObjectActions.promptHoldEndedActions(promptObject, player)
end
-- ربط أحداث المطالبة بوظائف المعالجة
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)

تعد مطالبات القرب حلاً مريحًا وقابلًا للتخصيص لتفاعل كائنات اللعبة. تحقق من صفحات مرجع ProximityPrompt و ProximityPromptService للحصول على المزيد من الطرق للتحكم في سلوك المطالبات، واستكشف كائنات تفاعلية أخرى في Dungeon Delve للحصول على إلهام إبداعي.

©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.