LuaEntry.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using XLua;
  3. namespace ET
  4. {
  5. public class LuaEntry: IEntry
  6. {
  7. private LuaEnv luaEnv;
  8. private Action update;
  9. private Action lateUpdate;
  10. private Action onApplicationQuit;
  11. private LuaTable scriptEnv;
  12. public void Start()
  13. {
  14. luaEnv = new LuaEnv();
  15. luaEnv.AddLoader(LuaLoader.Load);
  16. scriptEnv = luaEnv.NewTable();
  17. this.luaEnv.DoString("require 'Main.lua'()");
  18. scriptEnv.Get("Update", out this.update);
  19. scriptEnv.Get("LateUpdate", out this.lateUpdate);
  20. scriptEnv.Get("OnApplicationQuit", out onApplicationQuit);
  21. }
  22. public void Update()
  23. {
  24. this.update?.Invoke();
  25. }
  26. public void LateUpdate()
  27. {
  28. this.lateUpdate?.Invoke();
  29. }
  30. public void OnApplicationQuit()
  31. {
  32. this.onApplicationQuit?.Invoke();
  33. this.luaEnv.Dispose();
  34. }
  35. }
  36. }