You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.1 KiB
79 lines
2.1 KiB
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace UltraCombos.Frozen
|
|
{
|
|
public class SceneController : Singleton<SceneController>
|
|
{
|
|
[Range(0, 1)]
|
|
public float rate = 0.0f;
|
|
|
|
[SerializeField]
|
|
UniformBlendedStructuredBuffer uniform;
|
|
|
|
[SerializeField]
|
|
List<Material> spaceMaterials = new List<Material>();
|
|
|
|
[SerializeField, Range(0.0f, 0.1f)]
|
|
float snowSize = 0.01f;
|
|
[SerializeField]
|
|
Material snowMaterial;
|
|
|
|
[SerializeField]
|
|
BlendedCosineGradient cosineGradient;
|
|
|
|
[SerializeField]
|
|
KinectOpticalFlow kinect;
|
|
[SerializeField]
|
|
float nightKinectAmount = 30.0f;
|
|
|
|
[SerializeField]
|
|
ParticleViewerProcedural particleViewer;
|
|
[SerializeField, Range(0, 1)]
|
|
float dayParticleRate = 1.0f;
|
|
|
|
[SerializeField]
|
|
List<CharacterBehaviour> dayCharacters = new List<CharacterBehaviour>();
|
|
|
|
[SerializeField]
|
|
List<CharacterBehaviour> nightCharacters = new List<CharacterBehaviour>();
|
|
|
|
[SerializeField]
|
|
bool debug = false;
|
|
|
|
private void Start()
|
|
{
|
|
//debug = false;
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (debug)
|
|
{
|
|
rate = Mathf.Sin(Time.time * 0.2f) * 0.5f + 0.5f;
|
|
}
|
|
|
|
uniform.rate = rate;
|
|
foreach (var mat in spaceMaterials)
|
|
mat.SetFloat("_Rate", rate);
|
|
//snowMaterial.SetFloat("_Size", Mathf.Lerp(0.0f, snowSize, rate));
|
|
snowMaterial.SetFloat("_Size", snowSize);
|
|
cosineGradient.rate = rate;
|
|
kinect.kinectAmount = Mathf.Lerp(1.0f, nightKinectAmount, rate);
|
|
particleViewer.VertexCount = (int)(Mathf.Lerp(dayParticleRate, 1.0f, rate) * particleViewer.buffer.count);
|
|
|
|
foreach (var chr in dayCharacters)
|
|
{
|
|
chr.gameObject.SetActive(rate < 0.5);
|
|
}
|
|
|
|
foreach (var chr in nightCharacters)
|
|
{
|
|
chr.gameObject.SetActive(rate > 0.5);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|