BlendScript.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using GPUECSAnimationBaker.Engine.AnimatorSystem;
  2. using Unity.Burst;
  3. using Unity.Collections;
  4. using Unity.Entities;
  5. using UnityEngine;
  6. namespace GPUECSAnimationBaker.Samples.SampleScenes._4_BlendSampling
  7. {
  8. public class BlendScript : MonoBehaviour
  9. {
  10. public void Blend(float blendValue)
  11. {
  12. BlendScriptSystem blendScriptSystem =
  13. World.DefaultGameObjectInjectionWorld.GetOrCreateSystemManaged<BlendScriptSystem>();
  14. blendScriptSystem.changeBlend = true;
  15. blendScriptSystem.blendValue = blendValue;
  16. }
  17. }
  18. public partial class BlendScriptSystem : SystemBase
  19. {
  20. public bool changeBlend;
  21. public float blendValue;
  22. protected override void OnUpdate()
  23. {
  24. if (changeBlend)
  25. {
  26. changeBlend = false;
  27. Entities.ForEach((GpuEcsAnimatorAspect gpuEcsAnimatorAspect) =>
  28. {
  29. gpuEcsAnimatorAspect.RunAnimation((int)AnimationIdsMaria.StrafeWalk, blendFactor: blendValue);
  30. }).WithoutBurst().Run();
  31. }
  32. }
  33. }
  34. }