Um sicherzustellen, dass das Seitenverhältnis deines Spiels immer im 9:16-Format bleibt, unabhängig von der Bildschirmauflösung oder dem Gerät, kannst du in Unity einige Schritte unternehmen, um das Seitenverhältnis zu fixieren. Hier sind die wichtigsten Methoden, die du verwenden kannst:
Methode 1: Verwende denAspect Ratio Fitter
(UI-bezogen)Wenn du das Seitenverhältnis für die Benutzeroberfläche (UI) fixieren möchtest, kannst du den
Aspect Ratio Fitter
in Unity verwenden. Dies ist eine einfache Methode, wenn du UI-Elemente im festen Seitenverhältnis anzeigen möchtest.
- Wähle das UI-Element, das du fixieren möchtest.
- Füge den
Aspect Ratio Fitter
- -Komponenten zu diesem Element hinzu.
- Setze das Seitenverhältnis auf
9:16
- (0.5625).
Methode 2: Kamera anpassen (Hauptansicht fixieren)Für die 3D- oder 2D-Welt in deinem Spiel kannst du die Kamera so konfigurieren, dass das Seitenverhältnis immer 9:16 bleibt. Du kannst dies tun, indem du das Viewport-Seitenverhältnis über ein Skript erzwingst. Hier ist, wie du es umsetzen kannst:
- Skript erstellen, um das Seitenverhältnis zu erzwingen: Du kannst ein Skript erstellen, das das Seitenverhältnis der Kamera automatisch anpasst, um sicherzustellen, dass es immer bei 9:16 bleibt.
csharp
Kopieren
using UnityEngine;
public class LockAspectRatio : MonoBehaviour
{
void Start()
{
// Setze das gewünschte Seitenverhältnis (9:16)
float targetAspect = 9f / 16f;
// Berechne das aktuelle Seitenverhältnis des Bildschirms
float currentAspect = (float)Screen.width / (float)Screen.height;
// Berechne den Skalierungsfaktor
float scaleHeight = currentAspect / targetAspect;
// Wenn das aktuelle Seitenverhältnis höher als das Ziel-Seitenverhältnis ist, passen wir die Höhe an
if (scaleHeight > 1f)
{
Camera.main.rect = new Rect(0f, (1f - 1f / scaleHeight) / 2f, 1f, 1f / scaleHeight);
}
else // Andernfalls passen wir die Breite an
{
float scaleWidth = 1f / scaleHeight;
Camera.main.rect = new Rect((1f - scaleWidth) / 2f, 0f, scaleWidth, 1f);
}
}
}
Erklärung:- targetAspect: Hier definierst du das Seitenverhältnis von 9:16.
- currentAspect: Berechnet das aktuelle Seitenverhältnis des Bildschirms.
- scaleHeight und scaleWidth: Berechnet, wie das Bild skaliert werden muss, um das gewünschte Seitenverhältnis zu erreichen.
- Das Skript stellt sicher, dass das Bild immer im gewünschten Seitenverhältnis angezeigt wird, selbst wenn das Gerät eine andere Auflösung oder ein anderes Seitenverhältnis hat.
- Kamera-Viewport anpassen: Das Skript passt das Viewport-Bereich der Kamera (
Camera.main.rect
- ) so an, dass das Bild immer im 9:16-Format bleibt. Wenn der Bildschirm ein anderes Seitenverhältnis hat, wird der Rest des Bildes als "Letterbox" oder "Pillarbox" angezeigt.
Methode 3: Unity-Einstellungen für das Seitenverhältnis festlegen- Player Settings: In den
Player Settings
- kannst du auch die Auflösungen und Seitenverhältnisse für verschiedene Plattformen einstellen.
- Resolution & Presentation:
Jedoch ist diese Methode nicht so flexibel wie ein Skript, da du die Auflösungen und Formate nicht dynamisch anpassen kannst, wenn sich das Gerät oder die Auflösung ändert.
Methode 4: Verhindern der Rotation (optional)Falls du auch die Rotation des Geräts verhindern möchtest, um das Seitenverhältnis zu erzwingen (z. B. das Spiel nur im Hochformat zu spielen), kannst du das in den Player-Einstellungen oder per Skript machen:
- Player Settings:
- Skript: Falls du dies im Skript umsetzen möchtest:
csharp
Kopieren
using UnityEngine;
public class LockOrientation : MonoBehaviour
{
void Start()
{
// Sperre die Ausrichtung auf Hochformat
Screen.orientation = ScreenOrientation.Portrait;
}
}
FazitDie Methode mit dem Skript, das das Seitenverhältnis im Kamerabereich anpasst, ist wahrscheinlich die flexibelste und dynamischste Lösung. So stellst du sicher, dass das 9:16-Format beibehalten wird, egal auf welchem Gerät das Spiel läuft.
Hoffe ich konnte helfen!
Yasin