27 lines
861 B
C#
27 lines
861 B
C#
|
using UnityEngine;
|
||
|
namespace Pathfinding {
|
||
|
using Pathfinding.Util;
|
||
|
|
||
|
/// <summary>Helper for <see cref="Pathfinding.Examples.LocalSpaceRichAI"/></summary>
|
||
|
[HelpURL("https://arongranberg.com/astar/documentation/stable/localspacegraph.html")]
|
||
|
public class LocalSpaceGraph : VersionedMonoBehaviour {
|
||
|
Matrix4x4 originalMatrix;
|
||
|
MutableGraphTransform graphTransform = new MutableGraphTransform(Matrix4x4.identity);
|
||
|
public GraphTransform transformation { get { return graphTransform; } }
|
||
|
|
||
|
void Start () {
|
||
|
originalMatrix = transform.worldToLocalMatrix;
|
||
|
transform.hasChanged = true;
|
||
|
Refresh();
|
||
|
}
|
||
|
|
||
|
public void Refresh () {
|
||
|
// Avoid updating the GraphTransform if the object has not moved
|
||
|
if (transform.hasChanged) {
|
||
|
graphTransform.SetMatrix(transform.localToWorldMatrix * originalMatrix);
|
||
|
transform.hasChanged = false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|