60 lines
1.1 KiB
C#
60 lines
1.1 KiB
C#
using System.Collections;
|
|
using UnityEngine;
|
|
using UnityEngine.Rendering.HighDefinition;
|
|
|
|
public class DropsManager : MonoBehaviour
|
|
{
|
|
private float lastTime;
|
|
|
|
public WaterSurface waterSurface;
|
|
|
|
public DeformationManager deformationManager;
|
|
|
|
private float gravity = -9.81f;
|
|
|
|
private float lastSpeed;
|
|
|
|
private float speed;
|
|
|
|
private bool done;
|
|
|
|
private void OnEnable()
|
|
{
|
|
lastTime = Time.time;
|
|
lastSpeed = 0f;
|
|
speed = 0f;
|
|
base.transform.localPosition = Vector3.zero;
|
|
done = false;
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (!done)
|
|
{
|
|
float num = Time.time - lastTime;
|
|
speed = lastSpeed + gravity * num;
|
|
float y = base.transform.localPosition.y;
|
|
y += speed * num;
|
|
base.transform.localPosition = new Vector3(0f, y, 0f);
|
|
}
|
|
if (base.transform.position.y < waterSurface.transform.position.y && !done)
|
|
{
|
|
done = true;
|
|
base.transform.localPosition = Vector3.zero;
|
|
deformationManager.gameObject.SetActive(value: true);
|
|
StartCoroutine(WaitForAndInit(1f));
|
|
}
|
|
else
|
|
{
|
|
lastTime = Time.time;
|
|
lastSpeed = speed;
|
|
}
|
|
}
|
|
|
|
private IEnumerator WaitForAndInit(float seconds)
|
|
{
|
|
yield return new WaitForSeconds(seconds);
|
|
OnEnable();
|
|
}
|
|
}
|