// Update is called once per frame
        void Update()
        {
            while (EnumeratorExecuteManager.IsAny())
            {
                StartCoroutine(EnumeratorExecuteManager.Pop());
            }

            while (EnumeratorExecuteManager.IsAnyStop())
            {
                StopCoroutine(EnumeratorExecuteManager.PopStop());
            }
        }
Exemple #2
0
        /// <summary>
        /// ポリゴン分解処理
        /// </summary>
        private void Destruction()
        {
            Material overrideMaterial = GameObject.Instantiate(_overrideMaterial);

            for (int i = 0; i < _slicerList.Count; i++)
            {
                _slicerList[i].CanCut = false;

                Renderer   renderer = _slicerList[i].GetComponent <Renderer>();
                Material[] mats     = renderer.materials;
                Material[] newMats  = new Material[mats.Length];
                for (int j = 0; j < newMats.Length; j++)
                {
                    newMats[j] = overrideMaterial;
                }
                renderer.materials = newMats;
            }

            EnumeratorExecuteManager.Push(StartDestruction(overrideMaterial));
        }