69 lines
1.9 KiB
C#
69 lines
1.9 KiB
C#
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<Building>();
|
|
}
|
|
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<Renderer>();
|
|
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<Renderer>();
|
|
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;
|
|
}
|
|
}
|
|
}
|