ComponentFactory.cs 992 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 = ObjectPool.Instance.Fetch<T>();
  9. disposer.Entity = entity;
  10. ObjectEvents.Instance.Awake(disposer);
  11. return disposer;
  12. }
  13. public static T Create<T, A>(Entity entity, A a) where T : Component
  14. {
  15. T disposer = ObjectPool.Instance.Fetch<T>();
  16. disposer.Entity = entity;
  17. ObjectEvents.Instance.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 = ObjectPool.Instance.Fetch<T>();
  23. disposer.Entity = entity;
  24. ObjectEvents.Instance.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 = ObjectPool.Instance.Fetch<T>();
  30. disposer.Entity = entity;
  31. ObjectEvents.Instance.Awake(disposer, a, b, c);
  32. return disposer;
  33. }
  34. }
  35. }