Analyze command - track "SerializeReference" usage
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginne mit dem Analyze-Befehl und untersuche die vorhandenen Implementierungen der Tabellen mono_script und refs sowie von script_object_view. Definiere die neue SerializeReference-Tabelle und eine oder mehrere Views für die angeforderten MonoBehaviour-, object-, asset-, riid-, size-, class-, namespace- und assembly-Felder, und aktualisiere anschließend die Dokumentation um die Tabelle, die View und den Anwendungsfall der Klassenumbenennung.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
The SerializeReference feature of Unity Serialization means that additional C# classes can be serialized directly inside MonoBehaviours and ScriptableObjects. They do not use MonoScripts to managed the C# type - instead the C# type info is serialized directly into the serialized reference registry of the MonoBehaviour. So the information about what types are actually used is spread all over the place in the built content.
Management of these objects can be a challenge, often we have to do text searching of the YAML format in the project assets to find them. In binary data its quite hard to "find" them without actually loading the content.
One example for wanting to find them is if you want to rename a class and need to confirm that the old name is not present anywhere in your assetbundles.
This feature idea is to add another table similar to the recently introduced mono_script table.
When we enumerate MonoBehaviour objects when we discover a SerializeReference instance we will add a row to the new table that has the assembly name, namespace and class, the riid, and the id of the MonoBehaviour. Ideally we would also capture the size of the serialized data for that object.
This code will automatically code ScriptableObjects because they are represented as MonoBehaviours in serialized data.
This implementation should be somewhat similar to how references are captured and recorded in the refs table, so it should be possible to implement in UnityDataTools without introducing any new concepts or complexity.
- As part of this task also introduce one or more views that shows information from the new table, similar to the new
script_object_view.
E.g. a view that shows all SerializeReference objects with
monobehaviour object id, name, assetbundle/serialized fie, riid, size, Class, NameSpace, Assembly Name
- Also update documentation to talk about the new table / view and use case for using it.
- Vorherrschende Sprache
- C#
- Sterne
- 821
- Forks
- 71
- Ø Merge
- 3 Std. 13 Min.
- Gemergte PRs (30 T.)
- 9
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus Unity-Technologies/UnityDataTools
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Unity-Technologies/UnityDataTools#116 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
Alle Issues in Unity-Technologies/UnityDataTools
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
nightscout/nocturne#1379 ·
-
priority-0
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
StackExchange/StackExchange.Redis#3249 ·
-
[Feat] 조합 영역 구분선 개선 Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
-
documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100