ProjectDDD/Packages/com.arongranberg.astar/Core/Misc/LocalSpaceGraph.cs
2025-07-08 19:46:31 +09:00

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;
}
}
}
}