ppo-SnowballTarget / Project /Assets /ML-Agents /Examples /SharedAssets /Scripts /DirectionIndicator.cs
Download Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/DirectionIndicator.cs from ashish2244/ppo-SnowballTarget: direct link, hf CLI and curl.
- Browser
- Download file 1.3 kB
-
https://huggingface.co/ashish2244/ppo-SnowballTarget/resolve/main/Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/DirectionIndicator.cs
- Command line
-
hf download hf://ashish2244/ppo-SnowballTarget/Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/DirectionIndicator.cs
-
curl -L -o DirectionIndicator.cs https://huggingface.co/ashish2244/ppo-SnowballTarget/resolve/main/Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/DirectionIndicator.cs
1.3 kB
| using UnityEngine; | |
| namespace Unity.MLAgentsExamples | |
| { | |
| public class DirectionIndicator : MonoBehaviour | |
| { | |
| public bool updatedByAgent; //should this be updated by the agent? If not, it will use local settings | |
| public Transform transformToFollow; //ex: hips or body | |
| public Transform targetToLookAt; //target in the scene the indicator will point to | |
| public float heightOffset; | |
| private float m_StartingYPos; | |
| void OnEnable() | |
| { | |
| m_StartingYPos = transform.position.y; | |
| } | |
| void Update() | |
| { | |
| if (updatedByAgent) | |
| return; | |
| transform.position = new Vector3(transformToFollow.position.x, m_StartingYPos + heightOffset, | |
| transformToFollow.position.z); | |
| Vector3 walkDir = targetToLookAt.position - transform.position; | |
| walkDir.y = 0; //flatten dir on the y | |
| transform.rotation = Quaternion.LookRotation(walkDir); | |
| } | |
| //Public method to allow an agent to directly update this component | |
| public void MatchOrientation(Transform t) | |
| { | |
| transform.position = new Vector3(t.position.x, m_StartingYPos + heightOffset, t.position.z); | |
| transform.rotation = t.rotation; | |
| } | |
| } | |
| } | |