public override void CollectObservations() { // Ray Perception //var rayDistance = 50f; //float[] rayAngles = { 0f, 45f, 90f, 135f, 180f, 110f, 70f, -180 }; //var detectableObjects = new[] { "Player", "wall" }; //rays = m_Self.m_RayPerception.Perceive(rayDistance, rayAngles, detectableObjects, 0f, 0f); //AddVectorObs(rays); Vector3 normalizedPosSelf = SimpleGameManager.GetNormalizedPosition(transform); AddVectorObs(normalizedPosSelf.x); AddVectorObs(normalizedPosSelf.z); Vector3 normalizedPosOther = SimpleGameManager.GetNormalizedPosition(m_Other.m_Movement.transform); AddVectorObs(normalizedPosSelf.x); AddVectorObs(normalizedPosSelf.z); // Distance to other float distance = Vector3.Distance(normalizedPosSelf, normalizedPosOther); AddVectorObs(distance); // Rotation float rot = transform.rotation.eulerAngles.y; float normalizedRot = ((rot % 360) / 360); AddVectorObs(normalizedRot); }