// Update is called once per frame void Update() { while (EnumeratorExecuteManager.IsAny()) { StartCoroutine(EnumeratorExecuteManager.Pop()); } while (EnumeratorExecuteManager.IsAnyStop()) { StopCoroutine(EnumeratorExecuteManager.PopStop()); } }
/// <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)); }