12345678910111213141516171819202122232425262728293031323334353637383940 |
- using UnityEngine;
- namespace Pathfinding {
- [ExecuteInEditMode]
- /// <summary>
- /// Helper class to keep track of references to GameObjects.
- /// Does nothing more than to hold a GUID value.
- /// </summary>
- [HelpURL("http://arongranberg.com/astar/documentation/stable/class_pathfinding_1_1_unity_reference_helper.php")]
- public class UnityReferenceHelper : MonoBehaviour {
- [HideInInspector]
- [SerializeField]
- private string guid;
- public string GetGUID () {
- return guid;
- }
- public void Awake () {
- Reset();
- }
- public void Reset () {
- if (string.IsNullOrEmpty(guid)) {
- guid = Pathfinding.Util.Guid.NewGuid().ToString();
- Debug.Log("Created new GUID - " + guid, this);
- } else if (gameObject.scene.name != null) {
- // Create a new GUID if there are duplicates in the scene.
- // Don't do this if this is a prefab (scene.name == null)
- foreach (UnityReferenceHelper urh in FindObjectsOfType(typeof(UnityReferenceHelper)) as UnityReferenceHelper[]) {
- if (urh != this && guid == urh.guid) {
- guid = Pathfinding.Util.Guid.NewGuid().ToString();
- Debug.Log("Created new GUID - " + guid, this);
- return;
- }
- }
- }
- }
- }
- }
|