قم بالتمرير بحيث يكون العنصر المحدد في أعلى قائمة العناصر المنسدلة
بيئة التحقق
- نوافذ
-
- ويندوز ١١
- محرر الوحدة
-
- 2020.3.25f1
المتطلبات الأساسية لهذه النصيحة
تم إجراء الإعدادات التالية مسبقا كشرط أساسي لشرح هذه النصائح.
عند عرض قائمة العناصر المنسدلة ، يتم عرض العنصر العلوي دائما.
إذا كان عدد العناصر المنسدلة أكبر من المنطقة المنسدلة ، عرض التمرير ، في ذلك الوقت ، سيكون العنصر الأول المعروض دائما هو العنصر الموجود في الأعلى.
هذا صحيح أيضا عند تحديد العنصر الموجود في الأسفل وتوسيعه.
ومع ذلك ، قد يرغب بعض الأشخاص في العنصر الذي يحددونه في أعلى القائمة عند توسيعه. لاستيعاب هذا ، تحتاج إلى تكوين الإعدادات الإضافية التالية:
قم بالتمرير بحيث يكون العنصر المحدد في الأعلى عند توسيع القائمة المنسدلة
يتم ذلك عن طريق برنامج نصي. أضف نصا برمجيا إلى مشروعك وقم بتسميته ، DropdownScroll
لكن الاسم تعسفي.
عند فتح محرر البرامج النصية، أدخل ما يلي:
using UnityEngine;
using UnityEngine.UI; // 追加
public class DropdownScroll : MonoBehaviour
{
public void Start()
{
// スクロールの計算に必要な各コンポーネントを取得
var dropdown = GetComponentInParent<Dropdown>();
var scrollRect = gameObject.GetComponent<ScrollRect>();
var viewport = transform.Find("Viewport").GetComponent<RectTransform>();
var contentArea = transform.Find("Viewport/Content").GetComponent<RectTransform>();
var contentItem = transform.Find("Viewport/Content/Item").GetComponent<RectTransform>();
// 選択しているアイテムの位置や表示領域をもとに選択アイテムまでスクロールすべき量を計算する
var areaHeight = contentArea.rect.height - viewport.rect.height;
var cellHeight = contentItem.rect.height;
var scrollRatio = (cellHeight * dropdown.value) / areaHeight;
scrollRect.verticalNormalizedPosition = 1.0f - Mathf.Clamp(scrollRatio, 0.0f, 1.0f);
}
}
محتوى الكود ليس بهذه التعقيد. عند توسيع القائمة المنسدلة ، يتم حساب موضع التمرير وتعيينه بحيث يكون العنصر المحدد في الأعلى.
Start
سبب كتابته في الطريقة هو أنه يفترض أن عملية التهيئة ستعمل في كل مرة يتم فيها توسيع القائمة المنسدلة.
بعد حفظ التعليمة البرمجية، قم بإرفاق هذا Dropdown
Template
البرنامج النصي ب .
Temolate
يتم إنشاء الكائنات الموجودة تحتها عند توسيع القائمة المنسدلة بعد تنفيذ اللعبة.
تتم تهيئة المكون المرفق أيضا في وقت النشر.
أيضا ، عند إغلاق القائمة المنسدلة ، يتم تدمير الكائن الموسع ،
إذا قمت بنشره مرة أخرى، إنشاؤه مرة أخرى، لذلك سيتم تنفيذ عملية التهيئة بعد كل عملية نشر.
لنجربها.
كما ذكر أعلاه ، لن تكون القائمة المنسدلة التي لم تتخذ أي إجراء مرئية حتى إذا قمت بتوسيعها مع تحديد العنصر أدناه. من ناحية أخرى ، إذا قمت بتوسيع القائمة المنسدلة التي تناولناها ، يمكنك أن ترى أنه تم تمريرها إلى النقطة التي يمكنك فيها رؤية العنصر المحدد.