59 lines
1.8 KiB
C#
59 lines
1.8 KiB
C#
using UnityEngine;
|
|
|
|
namespace NanoBrain.Unity {
|
|
|
|
/// <summary>
|
|
/// The Unity ScriptableObject to implement re-usable Cluster Prefabs
|
|
/// </summary>
|
|
[CreateAssetMenu(menuName = "Passer/Cluster")]
|
|
public class ClusterPrefab : ScriptableObject {
|
|
|
|
/// <summary>
|
|
/// The cluster data
|
|
/// </summary>
|
|
public Cluster cluster;
|
|
|
|
//[HideInInspector]
|
|
public int version;
|
|
|
|
// #if UNITY_EDITOR
|
|
// private bool queuedIncrement = false;
|
|
|
|
// private void OnValidate() {
|
|
// Debug.Log("Validating...");
|
|
// if (queuedIncrement) {
|
|
// Debug.Log("Re-entry");
|
|
// return; // avoid re-entrancy
|
|
// }
|
|
|
|
// queuedIncrement = true;
|
|
|
|
// // Defer so Unity finishes its internal serialization/validate cycle first
|
|
// UnityEditor.EditorApplication.update += IncrementVersion;
|
|
// }
|
|
// private void IncrementVersion() {
|
|
// UnityEditor.EditorApplication.update -= IncrementVersion;
|
|
// Debug.Log("updating version...");
|
|
// // Ensure object still exists and hasn't been destroyed
|
|
// if (this == null) {
|
|
// queuedIncrement = false;
|
|
// return;
|
|
// }
|
|
|
|
// // Record for Undo and mark dirty so change persists
|
|
// UnityEditor.Undo.RecordObject(this, $"Increment {name} version");
|
|
// version++;
|
|
// UnityEditor.EditorUtility.SetDirty(this);
|
|
// Debug.Log($"{name} Prefab changed, version {version}");
|
|
|
|
// // Optional: force Inspector repaint
|
|
// //UnityEditor.EditorUtility.SetDirty(this);
|
|
// // clear the flag
|
|
// queuedIncrement = false;
|
|
|
|
// }
|
|
// #endif
|
|
}
|
|
|
|
}
|