Verander de resolutie van het spel

Pagina bijgewerkt :
Aanmaakdatum van pagina :

Verificatie omgeving

Ramen
  • Vensters 11
Unity-editor
  • 2021.3.1f1
Pakketten met invoersystemen
  • 1.3.0

Vereisten voor deze tip

De volgende instellingen zijn vooraf geconfigureerd als voorwaarde voor de uitleg van deze tips.

De resolutie opgeven aan het begin van het spel

Je kunt de resolutie aan het begin van het spel instellen via de projectinstellingen. Er zijn echter beperkingen, zoals aannames in de venstermodus, dus als je het betrouwbaar wilt instellen, denk ik dat de instelling door het programma dat later wordt beschreven betrouwbaarder is.

Selecteer hiervoor Bewerken -> Projectinstellingen in het menu.

Selecteer "Speler" in het menu aan de linkerkant.

Onderaan vind je de instellingen per omgeving. Als het weergavepictogram helemaal links bijvoorbeeld de instelling van de pc-omgeving is, zoals Windows.

"Resolutie en weergave" is binnenin ingeklapt, dus klik om het uit te vouwen en selecteer "Venster" in "Volledig scherm" in de resolutiegroep.

Vervolgens worden "Standaard schermbreedte" en "Standaard schermhoogte" weergegeven, zodat u hier de resolutie (= schermgrootte) kunt instellen. Deze instelling kan alleen worden ingesteld in de venstermodus.

Er zijn instellingen in andere omgevingen, dus controleer ze. In het volgende diagram ziet u de configuratie in WebGL. Resolutie = grootte van het canvas.

Uitvoeren en verifiëren

Ik kan niet controleren of het correct is, zelfs niet als ik het in de Unity-editor uitvoer, dus ik zal het spel uitvoeren en controleren. Zie de Tips voor game-uitvoer voor gedetailleerde instructies.

Zorg ervoor dat het wordt weergegeven op de opgegeven schermgrootte.

Maar zelfs als u de waarde van de grootte wijzigt, verandert de grootte mogelijk niet. Dit komt omdat de game zelf de vorige resolutie onthoudt. Als u er zeker van wilt zijn dat het scherm de opgegeven resolutie heeft, is het betrouwbaarder om dit te wijzigen met het hieronder beschreven programma.

Wijzig de resolutie van het programma

Hier zou ik het volgende scherm willen voorbereiden en programmatisch willen bedienen, zodat de resolutie verandert wanneer op elke knop wordt geklikt. Zie UI-tips voor meer informatie over het omgaan met de gebruikersinterface en knoppen.

Dit is wat er gebeurt als je op elke knop klikt:

using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
  public void OnClick_960x540()
  {
    // 横幅 pixel、縦幅 pixel、ウィンドウモード、リフレッシュレート(Hz) を指定
    // ウィンドウモードの場合、ウィンドウサイズも変わる
    Screen.SetResolution(960, 540, FullScreenMode.Windowed, 60);
  }
  public void OnClick_1280x720()
  {
    // 横幅 pixel、縦幅 pixel、ウィンドウモード、リフレッシュレート(Hz) を指定
    // ウィンドウモードの場合、ウィンドウサイズも変わる
    Screen.SetResolution(1280, 720, FullScreenMode.Windowed, 60);
  }
  public void OnClick_1600x900()
  {
    // 横幅 pixel、縦幅 pixel、ウィンドウモード、リフレッシュレート(Hz) を指定
    // ウィンドウモードの場合、ウィンドウサイズも変わる
    Screen.SetResolution(1600, 900, FullScreenMode.Windowed, 60);
  }
}

Voor de onderste twee methoden is het enige verschil het resolutienummer.

Screen.SetResolution U kunt de resolutie wijzigen door respectievelijk 'resolutiebreedte (px)', 'resolutiehoogte (px)', 'modus volledig scherm' en 'vernieuwingsfrequentie (Hz)' op te geven in de methodeargumenten.

Deze keer wordt het ingesteld in de venstermodus, maar het kan op dezelfde manier worden ingesteld in de modus Volledig scherm.

Als je wilt forceren dat het wordt ingesteld wanneer het spel begint, denk ik dat je het kunt afhandelen met een scriptmethode die in de awake eerste scène aan een object is gekoppeld.

Uitvoeren en verifiëren

Ik denk dat je kunt zien dat het klikken op elke knop de resolutie verandert (+ venstergrootte).