Übersicht
Das Sparrow Bug Tracking Paket ist ein leistungsfähiges Tool, mit dem du Bugs direkt in deinem Unity-Editor und deinen Spielen aus einem Ingame-Overlay verwalten und melden kannst. Es bietet eine abstrakte Klasse APISettings
die erweitert werden kann, um sich mit verschiedenen Fehlerverfolgungs-APIs zu verbinden.
APISettings
Die APISettings
Klasse ist der Kern des Sparrow Bug Tracking Pakets. Sie bietet die folgenden Eigenschaften:
Bildunterschrift
: Eine virtuelle String-Eigenschaft, die überschrieben werden kann, um eine benutzerdefinierte Beschriftung für die API-Einstellung bereitzustellen.isWorking
: Eine boolesche Eigenschaft, die angibt, ob die API korrekt funktioniert. Dies wird durch das Senden eines Testberichts an die API ermittelt.isActive
: Eine boolesche Eigenschaft, die angibt, ob die API gerade aktiv ist.
Die APISettings
Klasse bietet außerdem die folgenden Methoden:
SendReport(ReportData report)
: Eine abstrakte Methode, die in einer abgeleiteten Klasse implementiert werden muss. Sie sollte einen Bericht an die Fehlerverfolgungs-API senden und einen booleschen Wert zurückgeben, der angibt, ob der Bericht erfolgreich gesendet wurde.SendTestReport()
: Eine Methode, die einen Testbericht an die API sendet, um zu prüfen, ob sie richtig funktioniert.
Unity Editor Schnittstelle
Im Unity-Editor werden die APISettings
Klasse bietet eine Benutzeroberfläche zur Verwaltung der API-Einstellungen. Die Benutzeroberfläche enthält ein Faltblatt, das die Beschriftung und den Status der API (funktionierend oder nicht funktionierend) anzeigt. Wenn das Faltblatt aufgeklappt ist, zeigt es eine Symbolleiste zum Aktivieren oder Deaktivieren der API, eine Beschriftung, die den Status der API anzeigt, und eine Schaltfläche zum Senden eines Testberichts.
Erweitern von APISettings
Um das Sparrow Bug Tracking-Paket mit einer bestimmten Fehlerverfolgungs-API zu verwenden, musst du eine Klasse erstellen, die die APISettings
und implementiert die SendReport(ReportData report)
und DrawInternalEditor()
Methoden. Ausführlichere Informationen findest du in der Beispielklasse unten:
using Sparrow.BugTracking;
using UnityEditor;
using UnityEngine;
public class ExampleAPISettings : APISettings
{
public override string caption => "Beispiel API-Einstellung";
public string apiKey; // Füge alle zusätzlichen Einstellungen hinzu, die deine API benötigen könnte
public override async Task SendReport(ReportData report)
{
// Implementiere hier die Logik zum Senden eines Berichts an die Beispiel-API
// Dies hängt von den Besonderheiten der Beispiel-API ab
// Im Moment protokollieren wir nur den Bericht und geben true zurück
Debug.Log($ "Sending report to Example API: {report}");
return await Task.FromResult(true);
}
#if UNITY_EDITOR
public override void DrawInternalEditor()
{
// Implementiere hier die Logik zum Zeichnen des internen Editors für die Beispiel-API
// Dies kann Felder für zusätzliche Einstellungen enthalten, die deine API benötigt
// Für den Moment fügen wir nur ein Feld für den API-Schlüssel hinzu
apiKey = EditorGUILayout.TextField("API Key", apiKey);
}
#endif
}
Hinweis
Bitte denke daran, dass dieses Paket für die Verwendung im Unity-Editor und deine spezielle Anwendung gedacht ist. Teste deine Fehlerberichtsfunktion immer gründlich, bevor du deine Anwendung veröffentlichst.
Verwendung des Backends
Was soll man verfolgen?
Die BugTrackingManager
Klasse in der BugTrackingManager.cs
Datei kannst du festlegen, welche Informationen in die Fehlerberichte aufgenommen werden sollen. Dies geschieht durch das Setzen der booleschen Werte der folgenden Eigenschaften:
m_BuildNumber
: Nimmt die aktuelle Build-Version aus deinen Build-Einstellungen in deine Berichte auf.m_BundleId
: Nimmt die Bundle-ID aus deinen Build-Einstellungen in deine Berichte auf.m_OpenSceneCount
: Enthält die Anzahl der offenen Szenen in deinen Berichten.m_OpenSceneList
: Enthält eine Liste der offenen Szenen in deinen Berichten.m_StartZeit
: Enthält die Zeit, zu der das Spiel gestartet wird.m_AktuelleZeit
: Enthält die aktuelle Uhrzeit, zu der das Protokoll gesendet wird.m_Plattform
: Enthält die Plattform, auf der das Spiel läuft (Android/iOS usw.).m_DeviceModel
: Enthält die Informationen zum Gerätemodell.m_Gerätename
: Enthält die Informationen zum Gerätenamen.m_Gerätetyp
: Enthält die Informationen zum Gerätetyp.m_GraphicsDeviceName
: Enthält die Informationen zum Namen des Grafikgeräts.m_GraphicsDeviceMemorySize
: Enthält Informationen über die Speichergröße des Grafikgeräts.m_IncludeDebugLog
: Enthält alle Informationen, die mit Debug.Log() protokolliert wurden.m_IncludeDebugException
: Enthält alle Informationen, die mit Debug.LogException() protokolliert wurden.m_IncludeDebugError
: Enthält alle Informationen, die mit Debug.LogError() protokolliert wurden.m_IncludeDebugWarnings
: Enthält alle Informationen, die mit Debug.LogWarning() protokolliert wurden.m_IncludeDebugAssertion
: Enthält alle Informationen, die mit Debug.LogAssertion() protokolliert wurden.m_IncludeStackTraces
: Enthält Stack Traces für Ausnahmen und Fehler (wenn verfügbar).m_IncludeCustomText
: Du kannst einen benutzerdefinierten Text einfügen, um zum Beispiel verschiedene Builds und Versionen zu kennzeichnen.
Wann soll ich sie abschicken?
Die BugTrackingManager
Klasse kannst du auch festlegen, wann Fehlerberichte automatisch gesendet werden sollen. Dies geschieht durch das Setzen der booleschen Werte der folgenden Eigenschaften:
m_AutoSendOnError
: Sende automatisch einen Bericht, wenn ein Fehler auftritt.m_AutoSendOnException
: Sende automatisch einen Bericht, wenn eine Ausnahme auftritt.m_AutoSendOnWarning
: Sende automatisch einen Bericht, wenn eine Warnung auftritt.m_OnlySendInBuilds
: Sende Berichte nur in Builds und nicht im Editor.
Wohin soll ich es schicken?
Die BugTrackingManager
Klasse kannst du festlegen, wohin die Fehlerberichte gesendet werden sollen. Dies geschieht, indem du die Instanzen der folgenden Eigenschaften einstellst:
- trello: Trello API Einstellungen.
- github: GitHub API-Einstellungen.
- openproject: OpenProject API-Einstellungen.
- Begriff: Notion API-Einstellungen.
- E-Mail: E-Mail-API-Einstellungen.
- diskord: Discord API Einstellungen.
- Slack: Slack API-Einstellungen.
- unityCloud: Unity Cloud Diagnostics API-Einstellungen.
- ownEndpoint: Eigene API-Endpunkt-Einstellungen.
- jira: Jira API-Einstellungen.
Jede dieser Eigenschaften ist eine Instanz einer Klasse, die von der Klasse APISettings
Klasse. Du kannst jede Instanz entsprechend den Anforderungen der jeweiligen API konfigurieren.