12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- using UnityEngine;
- using System.Collections;
- namespace TerrainComposer2
- {
- [ExecuteInEditMode]
- public class TC_AutoGenerate : MonoBehaviour
- {
- [HideInInspector] public CachedTransform cT = new CachedTransform();
- public bool generateOnEnable = true;
- public bool generateOnDisable = true;
- public bool instantGenerate;
- public bool waitForEndOfFrame;
- bool generate;
- Transform t;
- // public bool repeat;
- void Start()
- {
- t = transform;
- cT.Copy(t);
- }
- #if !UNITY_EDITOR
- void Update()
- {
- MyUpdate();
- }
- #endif
- void MyUpdate()
- {
- // if (repeat) TC.AutoGenerate();
-
- if (cT.hasChanged(t))
- {
- // Debug.Log("Auto generate");
- cT.Copy(t);
- if (waitForEndOfFrame) generate = true; else Generate();
- }
- }
- void LateUpdate()
- {
- if (generate) Generate();
- }
- void Generate()
- {
- generate = false;
- if (instantGenerate) TC_Generate.instance.Generate(true);
- else TC.AutoGenerate();
- }
- void OnEnable()
- {
- if (generateOnEnable) TC.AutoGenerate();
- #if UNITY_EDITOR
- UnityEditor.EditorApplication.update += MyUpdate;
- #endif
- }
-
- void OnDisable()
- {
- if (generateOnDisable) TC.AutoGenerate();
- #if UNITY_EDITOR
- UnityEditor.EditorApplication.update -= MyUpdate;
- #endif
- }
- void OnDestroy()
- {
- #if UNITY_EDITOR
- UnityEditor.EditorApplication.update -= MyUpdate;
- #endif
- }
- }
- }
|