private void OnEndedHandler(SlicerCutSequencer sequencer) { if (_slicerSequencerList.Contains(sequencer)) { _slicerSequencerList.Remove(sequencer); } }
/// <summary> /// Update sequencer. /// </summary> /// <param name="slicer">Target slicer.</param> /// <param name="cuttedObjects">Separated objects.</param> /// <param name="plane">Separating plane.</param> private void UpdateSequencer(Slicer slicer, GameObject[] cuttedObjects, MeshCutter.CutterPlane plane) { if (slicer.Sequencer == null) { SlicerCutSequenceArgs args = new SlicerCutSequenceArgs { LifeTime = 1.58f, Speed = 0.1f, OverrideMaterial = _overrideMaterial, EffectPrefab = _effectPrefab, }; SlicerCutSequencer sequencer = new SlicerCutSequencer(args); sequencer.Add(cuttedObjects, plane, slicer); sequencer.OnEnded += OnEndedHandler; _slicerSequencerList.Add(sequencer); } else { SlicerCutSequencer sequencer = slicer.Sequencer; sequencer.Add(cuttedObjects, plane, slicer); sequencer.Remove(slicer); } Destroy(slicer.Root.gameObject); }