لغزش به طوری که مورد انتخاب شده در بالای فهرست موارد کشویی باشد

صفحه به روز شده :
تاریخ ایجاد صفحه :

محیط تایید

ویندوز
  • ویندوز 11
ویرایشگر یونیتی
  • دانلود: 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 گسترش می یابد کار خواهد کرد.

پس از ذخیره کد، این Dropdown Template اسکریپت را به .

Temolate اشیاء زیر ان تولید می شوند زمانی که کشویی پس از اجرای بازی گسترش می یابد. مؤلفه متصل نیز در زمان استقرار مقداردهی اولیه می شود. همچنین، هنگامی که قطره بسته می شود، جسم گسترش یافته نابود می شود، اگر دوباره ان را مستقر کنید، دوباره تولید خواهد شد، بنابراین فرایند اولیه پس از هر استقرار اجرا خواهد شد.

بیا امتحانش کنیم

همانطور که در بالا ذکر شد، کشویی که هیچ اقدامی انجام نداده است، حتی اگر ان را با مورد زیر انتخاب کنید، قابل مشاهده نخواهد بود. از سوی دیگر، اگر کشویی را که ما به ان پرداختیم گسترش دهید، می توانید ببینید که به نقطه ای که می توانید مورد انتخاب شده را ببینید، پیمایش می شود.