ppo-Pyramids-Training / Project /Assets /ML-Agents /Examples /SharedAssets /Scripts /TargetContact.cs
| using UnityEngine; | |
| namespace Unity.MLAgentsExamples | |
| { | |
| /// <summary> | |
| /// This class contains logic for locomotion agents with joints which might make contact with a target. | |
| /// By attaching this as a component to those joints, their contact with the ground can be used as | |
| /// an observation for that agent. | |
| /// </summary> | |
| [] | |
| public class TargetContact : MonoBehaviour | |
| { | |
| [] public bool touchingTarget; | |
| const string k_Target = "target"; // Tag on target object. | |
| /// <summary> | |
| /// Check for collision with a target. | |
| /// </summary> | |
| void OnCollisionEnter(Collision col) | |
| { | |
| if (col.transform.CompareTag(k_Target)) | |
| { | |
| touchingTarget = true; | |
| } | |
| } | |
| /// <summary> | |
| /// Check for end of ground collision and reset flag appropriately. | |
| /// </summary> | |
| void OnCollisionExit(Collision other) | |
| { | |
| if (other.transform.CompareTag(k_Target)) | |
| { | |
| touchingTarget = false; | |
| } | |
| } | |
| } | |
| } | |