Files
2026-05-31 14:27:52 -07:00

42 lines
1.3 KiB
C#

using Unity.Entities;
using UnityEngine;
#if RUKHANKA_SAMPLES_WITH_VFX_GRAPH
using UnityEngine.VFX;
#endif
///////////////////////////////////////////////////////////////////////////////////////////
namespace Rukhanka.Samples
{
struct VFXSkinnedMeshSamplerComponent: IComponentData
{
public Entity skinnedMeshEntity;
}
///////////////////////////////////////////////////////////////////////////////////////////
[WorldSystemFilter(WorldSystemFilterFlags.Default | WorldSystemFilterFlags.Editor)]
partial class VFXSkinnedMeshSamplerSystem: SystemBase
{
protected override void OnUpdate()
{
#if RUKHANKA_SAMPLES_WITH_VFX_GRAPH
foreach (var (smsc, e) in SystemAPI.Query<VFXSkinnedMeshSamplerComponent>().WithEntityAccess())
{
if (!EntityManager.HasComponent<VisualEffect>(e))
continue;
if (!EntityManager.HasComponent<DeformedMeshIndex>(smsc.skinnedMeshEntity))
continue;
var vfx = EntityManager.GetComponentObject<VisualEffect>(e);
var deformedMeshIndex = EntityManager.GetComponentData<DeformedMeshIndex>(smsc.skinnedMeshEntity);
vfx.SetInt("DeformedMeshIndex", (int)deformedMeshIndex.Value);
}
#endif
}
}
}