[Player] Add AI Pathfinding on a 2D grid to the player character
This commit is contained in:
40
Assets/External/AstarPathfindingProject/Utilities/UnityReferenceHelper.cs
vendored
Normal file
40
Assets/External/AstarPathfindingProject/Utilities/UnityReferenceHelper.cs
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
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/docs/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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user