Egyik cross platform fejlesztés során a NativePlugins nevű plugint kellett használnom néhány funkcióhoz, hogy azok a megszokott módon működjenek az adott operációs rendszeren. A plugin több mindenre is képes, amelyeket grafikus felületen lehet pipálgatva szabályozni, hogy mire van szükség. Nekem éppenséggel a megosztás kezelése és egy fájl kiválasztó modul kellett csak belőle:
![]() |
Funkciók kiválasztása |
A problémám a Unity első újraindítását követően jelentkezett, amikor Androidra akartam fordítani, de elpukkant, mondván, a Billing modul IInAppBillingService osztálya kétszer is hozzá van adva a projekthez. Másik árulkodó jel az volt, hogy újabb NPSettings.asset és EditorNotificationCenter.asset fájlok keletkeztek a fájlnevek végén növekvő számozással akárhányszor elindult a Unity és néha annak bezárása nélkül is. Megnézve az NP beállításait, szomorúan tapasztaltam, hogy minden visszaállt az alapértelmezett értékre: mindegyik funkció be volt pipálva és a Billing modul ütközött a már korábban használttal.
Az NP szerkesztőfelületén az Inspectorból elérhető egy egészen mutatós leírás hozzá, de ilyen jelenségről nem írt, ami akár még abból is adódhatott, hogy a leírás korábbi verzióhoz tartozott.
Végül az NPSettings.cs fájlban meglett a titok, miszerint statikus konstruktorban szerepelt egy olyan kódrészlet, ami UnityEditorban mindig újragenerálta a beállításokat, ha egy bizonyos DISABLE_NPSETTINGS_GENERATION szimbólum nincs definiálva.
Ezt hozzáadva az Edit/Unity Project Settings/Player settings menüpont Scripting Define Symbols listájába, helyreállt a rend és többé nem generált új asset fájlokat és megtartott a beállításokat.
![]() |
DISABLE_NPSETTINGS_GENERATION beállítása |