Kerige nii, et valitud üksus oleks ripploendi ülaosas
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.