GpuEcsAttachmentBehaviour.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using Unity.Entities;
  2. using UnityEngine;
  3. namespace GPUECSAnimationBaker.Engine.AnimatorSystem
  4. {
  5. public class GpuEcsAttachmentBehaviour : MonoBehaviour
  6. {
  7. }
  8. public class GpuEcsAttachmentBaker : Baker<GpuEcsAttachmentBehaviour>
  9. {
  10. public override void Bake(GpuEcsAttachmentBehaviour authoring)
  11. {
  12. int attachmentAnchorId = 0;
  13. Entity gpuEcsAnimatorEntity = Entity.Null;
  14. GpuEcsAttachmentInitializerBehaviour initializer = authoring.GetComponent<GpuEcsAttachmentInitializerBehaviour>();
  15. if (initializer != null) attachmentAnchorId = initializer.GetAttachmentAnchorID();
  16. if (authoring.transform.parent != null)
  17. {
  18. GpuEcsAnimatorBehaviour gpuEcsAnimator = authoring.transform.parent.GetComponent<GpuEcsAnimatorBehaviour>();
  19. if (gpuEcsAnimator != null)
  20. {
  21. gpuEcsAnimatorEntity = GetEntity(gpuEcsAnimator, TransformUsageFlags.None);
  22. }
  23. }
  24. Entity entity = GetEntity(TransformUsageFlags.Dynamic);
  25. AddComponent(entity, new GpuEcsAttachmentComponent()
  26. {
  27. gpuEcsAnimatorEntity = gpuEcsAnimatorEntity,
  28. attachmentAnchorId = attachmentAnchorId
  29. });
  30. }
  31. }
  32. }