Пример #1
0
 private void OnEndedHandler(SlicerCutSequencer sequencer)
 {
     if (_slicerSequencerList.Contains(sequencer))
     {
         _slicerSequencerList.Remove(sequencer);
     }
 }
Пример #2
0
        /// <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);
        }