Files
cppk-ar/Assets/Scripts/SceneHandler.cs
T
2022-11-10 15:21:53 +05:00

61 lines
1.7 KiB
C#

using System.Linq;
using System.Collections;
using System.Threading.Tasks;
using System.Collections.Generic;
using UnityEngine;
public class SceneHandler : MonoBehaviour
{
[SerializeField] Material skyboxMaterial;
[SerializeField] float startPositionValue;
[SerializeField] float endPositionValue;
[Space]
[SerializeField] GameObject[] disableOnStart;
async Task Start()
{
foreach(var item in disableOnStart)
item.SetActive(false);
var skyboxExposure = 1;
float currentExposure = 0;
skyboxMaterial.SetFloat("_Exposure", 0);
float currentPositionValue = startPositionValue;
var objectsWithEffect = FindObjectsOfType<MeshRenderer>()
.Where(x => x.sharedMaterial.shader.name.Contains("S_Holographic"))
.ToList();
foreach(var item in objectsWithEffect)
item.sharedMaterial.SetFloat("_EffectPosition", startPositionValue);
while(currentPositionValue != endPositionValue)
{
currentPositionValue = Mathf.MoveTowards(currentPositionValue,
endPositionValue,
Time.deltaTime * 3);
Debug.Log(currentPositionValue);
foreach(var item in objectsWithEffect)
item.material.SetFloat("_EffectPosition",
currentPositionValue);
await Task.Yield();
}
while(currentExposure != skyboxExposure)
{
currentExposure = Mathf.MoveTowards(currentExposure, skyboxExposure, Time.deltaTime);
skyboxMaterial.SetFloat("_Exposure", currentExposure);
await Task.Yield();
}
foreach(var item in disableOnStart)
item.SetActive(true);
}
}