سکرول کریں تاکہ منتخب کردہ آئٹم ڈراپ ڈاؤن آئٹمز کی فہرست میں سب سے اوپر ہو۔

جب صفحے کی تازہ کاری :
صفحہ تخلیق تاریخ :

تصدیق کا ماحول

Windows
  • ونڈوز 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 Template کریں۔

Temolate اس کے نیچے موجود اشیاء اس وقت پیدا ہوتی ہیں جب گیم کے نفاذ کے بعد ڈراپ ڈاؤن کو بڑھایا جاتا ہے۔ تعیناتی کے وقت منسلک جزو کو بھی شروع کیا جاتا ہے۔ اس کے علاوہ ، جب ڈراپ ڈاؤن بند ہوجاتا ہے تو ، توسیع شدہ شے تباہ ہوجاتی ہے ، اگر آپ اسے دوبارہ تعینات کرتے ہیں تو ، یہ دوبارہ پیدا ہوگا ، لہذا ہر تعیناتی کے بعد ابتدائی عمل انجام دیا جائے گا۔

چلو کوشش کرتے ہیں.

جیسا کہ اوپر ذکر کیا گیا ہے ، ڈراپ ڈاؤن جس نے کوئی کارروائی نہیں کی ہے وہ نظر نہیں آئے گا یہاں تک کہ اگر آپ اسے نیچے منتخب کردہ آئٹم کے ساتھ توسیع دیتے ہیں۔ دوسری طرف ، اگر آپ ڈراپ ڈاؤن کو وسعت دیتے ہیں جسے ہم نے مخاطب کیا ہے تو ، آپ دیکھ سکتے ہیں کہ اسے اس مقام پر سکرول کیا گیا ہے جہاں آپ منتخب آئٹم دیکھ سکتے ہیں۔