Kerige nii, et valitud üksus oleks ripploendi ülaosas

Lehekülg uuendatud :
Lehe loomise kuupäev :

Kontrollimise keskkond

Windows
  • Windows 11
Ühtsuse toimetaja
  • 2020.3.25f1

Selle näpunäite eeltingimused

Nende näpunäidete selgitamise eeltingimuseks on eelnevalt tehtud järgmised seadistused.

Ripploendi kuvamisel kuvatakse alati ülemine üksus.

Kui rippmenüüde arv on rippmenüüst suurem, kuvatakse kerimine, Sel ajal on esimene kuvatav üksus alati ülaosas olev üksus.

See kehtib ka siis, kui allosas olev üksus on valitud ja laiendatud.

Kuid mõned inimesed võivad soovida üksust, mille nad loendi ülaosas laiendamisel valivad. Selle mahutamiseks peate konfigureerima järgmised lisaseaded:

Kerige nii, et valitud üksus oleks rippmenüü laiendamisel ülaosas

Seda teeb skript. Lisage oma projektile skript ja pange sellele nimi , DropdownScroll kuid nimi on meelevaldne.

Skriptiredaktori avamisel sisestage järgmine teave.

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);
  }
}

Koodi sisu ei ole nii keeruline. Kui rippmenüü on laiendatud, arvutatakse kerimisasend ja seadistatakse nii, et valitud üksus oleks ülaosas.

Start Meetodi kirjutamise põhjus on see, et see eeldab, et lähtestamisprotsess toimib iga kord, kui rippmenüüd laiendatakse.

Pärast koodi salvestamist manustage see Dropdown Template skript asendisse .

Temolate Selle all olevad objektid luuakse rippmenüü laiendamisel pärast mängu käivitamist. Lisatud komponent lähtestatakse ka juurutamise ajal. Samuti, kui rippmenüü on suletud, hävitatakse laiendatud objekt, Kui juurutate selle uuesti, luuakse see uuesti, nii et lähtestamisprotsess käivitatakse pärast iga juurutamist.

Proovime järele.

Nagu eespool mainitud, ei ole rippmenüü, mis pole midagi teinud, nähtav isegi siis, kui laiendate seda alloleva valitud üksusega. Teisest küljest, kui laiendate rippmenüüd, mida me käsitlesime, näete, et seda keritakse punktini, kus näete valitud üksust.