using CHN; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour { private Building building; private Floor curFloor; public override void AfterAwake() { building = FindSingle(); } private void Update() { //if (curFloor == null) // return; if(Input.GetKeyDown(KeyCode.LeftAlt)) { StartVisual(); } if(Input.GetKeyUp(KeyCode.LeftAlt)) { var areas = curFloor.VisualizationAreas; var renderers = areas.GetComponentsInChildren(); foreach (var renderer in renderers) { var propertyBlock = new MaterialPropertyBlock(); renderer.GetPropertyBlock(propertyBlock); propertyBlock.SetFloat("_DissolveAmount", 1); renderer.SetPropertyBlock(propertyBlock); } areas.SetActive(false); } } private void StartVisual() { StopAllCoroutines(); curFloor = building.currentFloor; StartCoroutine(IsAnimationPlay()); } IEnumerator IsAnimationPlay() { float timer = 0f; float percent = 0f; var areas = curFloor.VisualizationAreas; areas.SetActive(true); var renderers = curFloor.VisualizationAreas.GetComponentsInChildren(); while (percent<1) { timer += Time.deltaTime; percent = timer / 0.5f; foreach (var renderer in renderers) { var propertyBlock = new MaterialPropertyBlock(); renderer.GetPropertyBlock(propertyBlock); propertyBlock.SetFloat("_DissolveAmount", 1f-percent); renderer.SetPropertyBlock(propertyBlock); } yield return null; } } }