2021-02-25 00:41:33 +01:00
|
|
|
using System.Collections;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
public class FallawayFloor : MonoBehaviour
|
|
|
|
{
|
2021-03-02 20:47:28 +01:00
|
|
|
// Speed at which the object moves towards the ground.
|
2021-02-25 01:51:11 +01:00
|
|
|
public float speed;
|
2021-03-02 20:47:28 +01:00
|
|
|
// Time it takes for ogjecct to begin moving towards the ground.
|
|
|
|
public float fallAwayTime;
|
|
|
|
// Time taken for object to be destroyed.
|
|
|
|
public float destroyObjectTime;
|
2021-02-26 15:50:30 +01:00
|
|
|
public Material dissolve;
|
2021-02-25 01:51:11 +01:00
|
|
|
Rigidbody rb;
|
|
|
|
|
|
|
|
private void Start()
|
|
|
|
{
|
2021-03-02 20:47:28 +01:00
|
|
|
// Get Rigidbody component.
|
2021-02-25 01:51:11 +01:00
|
|
|
rb = GetComponent<Rigidbody>();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void OnTriggerEnter(Collider other)
|
2021-02-25 00:41:33 +01:00
|
|
|
{
|
2021-02-26 15:50:30 +01:00
|
|
|
if (other.gameObject.CompareTag("Player"))
|
2021-02-25 01:51:11 +01:00
|
|
|
{
|
2021-03-02 20:47:28 +01:00
|
|
|
// Start the Destroy floor coroutine and switch to the dissolve material.
|
2021-02-25 01:51:11 +01:00
|
|
|
StartCoroutine(DestroyFloor());
|
2021-02-26 15:50:30 +01:00
|
|
|
GetComponent<Renderer>().material = dissolve;
|
2021-02-25 01:51:11 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
IEnumerator DestroyFloor()
|
|
|
|
{
|
2021-03-02 20:47:28 +01:00
|
|
|
// Take fallAwayTime, speed, and destroyObjectTime from editor and apply
|
|
|
|
yield return new WaitForSeconds(fallAwayTime);
|
2021-02-25 01:51:11 +01:00
|
|
|
rb.velocity = Vector3.down * speed;
|
2021-03-02 20:47:28 +01:00
|
|
|
yield return new WaitForSeconds(destroyObjectTime);
|
2021-02-25 01:51:11 +01:00
|
|
|
|
|
|
|
Destroy(gameObject);
|
2021-02-25 00:41:33 +01:00
|
|
|
}
|
|
|
|
}
|