Vieritä niin, että valittu kohde on avattavien kohteiden luettelon yläosassa
Varmennusympäristö
- Windows
-
- Windows 11
- Unity-editori
-
- 2020.3.25F1
Tämän vinkin edellytykset
Seuraavat asetukset on tehty etukäteen edellytyksenä näiden vinkkien selittämiselle.
Kun avattavaa kohdeluetteloa näytetään, ylin kohde näkyy aina.
Jos avattavien kohteiden määrä on suurempi kuin avattava alue, vieritys tulee näkyviin, Tuolloin ensimmäinen näytettävä kohde on aina yläosassa oleva kohde.
Tämä pätee myös silloin, kun alareunassa oleva kohde valitaan ja laajennetaan.
Jotkut saattavat kuitenkin haluta, että heidän valitsemansa kohde on luettelon yläosassa, kun sitä laajennetaan. Tätä varten sinun on määritettävä seuraavat lisäasetukset:
Vieritä niin, että valittu kohde on ylhäällä, kun laajennat avattavaa valikkoa
Tämä tehdään komentosarjalla. Lisää komentosarja projektiisi ja nimeä se , DropdownScroll
mutta nimi on mielivaltainen.
Kun avaat Skriptieditorin, kirjoita seuraavat tiedot:
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);
}
}
Koodin sisältö ei ole niin monimutkainen. Kun avattavaa valikkoa laajennetaan, vierityspaikka lasketaan ja asetetaan siten, että valittu kohde on ylimpänä.
Start
Syy sen kirjoittamiseen menetelmään johtuu siitä, että siinä oletetaan, että alustusprosessi toimii aina, kun avattavaa valikkoa laajennetaan.
Kun olet tallentanut koodin, liitä tämä Dropdown
Template
komentosarja .
Temolate
Sen alla olevat objektit luodaan, kun avattavaa valikkoa laajennetaan pelin suorittamisen jälkeen.
Liitetty komponentti alustetaan myös käyttöönoton yhteydessä.
Lisäksi, kun avattava valikko suljetaan, laajennettu objekti tuhoutuu,
Jos otat sen uudelleen käyttöön, se luodaan uudelleen, joten alustusprosessi suoritetaan jokaisen käyttöönoton jälkeen.
Kokeillaan sitä.
Kuten edellä mainittiin, avattava valikko, joka ei ole tehnyt mitään, ei ole näkyvissä, vaikka laajennat sen alla olevan kohteen ollessa valittuna. Toisaalta, jos laajennat käsittelemäämme avattavaa valikkoa, näet, että sitä vieritetään kohtaan, jossa näet valitun kohteen.