ComponentFactory.cs 1020 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 = (T)Activator.CreateInstance(typeof(T));
  9. disposer.Owner = 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 = (T)Activator.CreateInstance(typeof(T));
  16. disposer.Owner = 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 = (T)Activator.CreateInstance(typeof(T));
  23. disposer.Owner = 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 = (T)Activator.CreateInstance(typeof(T));
  30. disposer.Owner = entity;
  31. ObjectEvents.Instance.Awake(disposer, a, b, c);
  32. return disposer;
  33. }
  34. }
  35. }