summaryrefslogtreecommitdiff
path: root/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Core/ECS/Components/AgentMovementPlane.cs
blob: 3321294731f2fa1fa8be0c3db7b4194f32cc4ffd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#if MODULE_ENTITIES
using Unity.Entities;

namespace Pathfinding.ECS {
	using Pathfinding;
	using Pathfinding.Util;
	using Unity.Mathematics;

	/// <summary>Holds an agent's movement plane</summary>
	[System.Serializable]
	public struct AgentMovementPlane : IComponentData {
		/// <summary>
		/// The movement plane for the agent.
		///
		/// The movement plane determines what the "up" direction of the agent is.
		/// For most typical 3D games, this will be aligned with the Y axis, but there are
		/// games in which the agent needs to navigate on walls, or on spherical worlds.
		/// For those games this movement plane will track the plane in which the agent is currently moving.
		///
		/// See: spherical (view in online documentation for working links)
		/// </summary>
		public NativeMovementPlane value;

		/// <summary>Create a movement plane aligned with the XZ plane of the specified rotation</summary>
		public AgentMovementPlane (quaternion rotation) {
			value = new NativeMovementPlane(rotation);
		}
	}
}
#endif