using Unity.Entities; using Unity.Rendering; namespace GarmentButton.VerletIntegration.Tear { [UpdateInGroup(typeof(VerletIntegrationPhysicsGroupSystems))] [UpdateAfter(typeof(CheckStretchesSystem))] public partial class SetChangeToMeshSystem : SystemBase { protected override void OnCreate() { RequireForUpdate(); RequireForUpdate(); RequireForUpdate(); } protected override void OnUpdate() { var ecbSingleton = SystemAPI.GetSingleton().CreateCommandBuffer(World.Unmanaged); foreach (var (meshInfo,tringles,meshArray,entity) in SystemAPI.Query, DynamicBuffer,RenderMeshArray>().WithEntityAccess().WithAll()) { var mesh = meshArray.GetMesh(meshInfo.ValueRO); int[] tringlesForMesh = new int[tringles.Length]; for (int i = 0; i < tringlesForMesh.Length; i++) tringlesForMesh[i] = tringles[i].Index; mesh.SetTriangles(tringlesForMesh,0); mesh.RecalculateNormals(); ecbSingleton.RemoveComponent(entity); } } } }