Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class TreeManager : MonoBehaviour
- {
- private bool inRange = false;
- private float treePositionx;
- private float treePositiony;
- private float treePositionz;
- public Transform treeSappling;
- public Transform treeHalfGrown;
- public Transform treeFullyGrown;
- private void Awake()
- {
- treePositionx = transform.position.x;
- treePositiony = transform.position.y;
- treePositionz = transform.position.z;
- }
- private void OnMouseDown()
- {
- if (inRange == true)
- {
- Debug.Log("Tree has been destroyed");
- MeshRenderer meshRenderer = GetComponentInChildren<MeshRenderer>();
- MeshCollider meshCollider = GetComponent<MeshCollider>();
- BoxCollider boxCollider = GetComponent<BoxCollider>();
- meshRenderer.enabled = false;
- meshCollider.enabled = false;
- boxCollider.enabled = false;
- StartCoroutine(TreeGrowingCoroutine());
- }
- }
- private void OnTriggerStay(Collider other)
- {
- if(other.tag == "Character")
- {
- inRange = true;
- }
- }
- private void OnTriggerExit(Collider other)
- {
- if(other.tag == "Character")
- {
- inRange = false;
- }
- }
- IEnumerator TreeGrowingCoroutine()
- {
- Debug.Log("Started Tree Growing Cycle");
- yield return new WaitForSeconds(1);
- Transform sappling = Instantiate(treeSappling, new Vector3(treePositionx, treePositiony, treePositionz), treeSappling.rotation);
- yield return new WaitForSeconds(1);
- Destroy(sappling.gameObject);
- Transform halfTree = Instantiate(treeHalfGrown, new Vector3(treePositionx, treePositiony, treePositionz), treeHalfGrown.rotation);
- yield return new WaitForSeconds(1);
- Destroy(halfTree.gameObject);
- Transform treeGrown = Instantiate(treeFullyGrown, new Vector3(treePositionx, treePositiony, treePositionz), treeFullyGrown.rotation);
- Destroy(this.gameObject);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement