Wie ist dein Setup genau? Mod gezippt oder als lose Dateien? Projekt Verzeichnis beim Debugger der Ordner vom Mod?
Wenn du "Break All" drückst, wird das Spiel angehalten und du kannst die Sachen auslesen? Wird beim Debugger unten links "connected" angezeigt?
Wenn pausiert ist, wird was sinnvolles beim Callstack anzeigt und kann man da doppelkicken?
Live-Editierung geht nur bedingt. Insbesondere beim Spezialisierungen funktioniert das nicht einfach so, da beim Script Reload einfach das Script nochmals ausgeführt wird. Dadurch werden zwar alle Funktionen etc. neu erstellt, aber Bestehende Objekte die bereits auf die alten Funktionen zeigen, zeigen dann nicht plötzlich auf die neuen Funktionen.
Es funktioniert nur bei Funktionen, die bei den Objekten nicht lokal speichert sind. Du kannst das etwas umgehen in dem du z.B. zum testen in deiner Spezialisierung eine andere globale Funktion aufrufst die in einem anderen File liegen. Dann kannst du die niese Helper Funktionen neu laden. Z.B. Sowas:
Die Spezialisierung lua sieht so aus:
Code: Select all
function MySpec:myFunc(dt)
MySpec_myFunc(self, dt)
end
Und es gibt die zweite Lua MySpecImpl.lua
Code: Select all
function MySpec_myFunc(self, dt)
print("Running myFunc on self "..tostring(self))
end
Dann sollte man MySpecImpl.lua reloaden können und die Funktion wird auch geändert ausgeführt.
Wir sind uns allerdings auch intern noch am überlegen, was die besten Optionen sind, um Reload besser zuzulassen, und ob wir evtl die Reload Funktion selbst auch verbessern können so dass alte Funktionen automatisch von den neuen überschrieben werden können.