ComponentFactory.cs 972 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System;
  2. namespace Hotfix
  3. {
  4. public static class ComponentFactory
  5. {
  6. public static T Create<T>(Entity entity) where T : Component
  7. {
  8. T disposer = Hotfix.ObjectPool.Fetch<T>();
  9. disposer.Parent = entity;
  10. Hotfix.EventSystem.Awake(disposer);
  11. return disposer;
  12. }
  13. public static T Create<T, A>(Entity entity, A a) where T : Component
  14. {
  15. T disposer = Hotfix.ObjectPool.Fetch<T>();
  16. disposer.Parent = entity;
  17. Hotfix.EventSystem.Awake(disposer, a);
  18. return disposer;
  19. }
  20. public static T Create<T, A, B>(Entity entity, A a, B b) where T : Component
  21. {
  22. T disposer = Hotfix.ObjectPool.Fetch<T>();
  23. disposer.Parent = entity;
  24. Hotfix.EventSystem.Awake(disposer, a, b);
  25. return disposer;
  26. }
  27. public static T Create<T, A, B, C>(Entity entity, A a, B b, C c) where T : Component
  28. {
  29. T disposer = Hotfix.ObjectPool.Fetch<T>();
  30. disposer.Parent = entity;
  31. Hotfix.EventSystem.Awake(disposer, a, b, c);
  32. return disposer;
  33. }
  34. }
  35. }