ppo-Pyramids-Training
/
Project
/Assets
/ML-Agents
/Examples
/SharedAssets
/Scripts
/OrientationCubeController.cs
using UnityEngine; | |
namespace Unity.MLAgentsExamples | |
{ | |
/// <summary> | |
/// Utility class to allow a stable observation platform. | |
/// </summary> | |
public class OrientationCubeController : MonoBehaviour | |
{ | |
//Update position and Rotation | |
public void UpdateOrientation(Transform rootBP, Transform target) | |
{ | |
var dirVector = target.position - transform.position; | |
dirVector.y = 0; //flatten dir on the y. this will only work on level, uneven surfaces | |
var lookRot = | |
dirVector == Vector3.zero | |
? Quaternion.identity | |
: Quaternion.LookRotation(dirVector); //get our look rot to the target | |
//UPDATE ORIENTATION CUBE POS & ROT | |
transform.SetPositionAndRotation(rootBP.position, lookRot); | |
} | |
} | |
} | |