using System.Collections; using System.Collections.Generic; using UnityEngine; public class Ball3DDecision : MonoBehaviour, Decision { public float rotationSpeed = 2f; public float[] Decide(List state, List observation, float reward, bool done, List memory) { if (gameObject.GetComponent().brainParameters.vectorActionSpaceType == SpaceType.continuous) { List act = new List(); // state[5] is the velocity of the ball in the x orientation. // We use this number to control the Platform's z axis rotation speed, // so that the Platform is tilted in the x orientation correspondingly. act.Add(state[5] * rotationSpeed); // state[7] is the velocity of the ball in the z orientation. // We use this number to control the Platform's x axis rotation speed, // so that the Platform is tilted in the z orientation correspondingly. act.Add(-state[7] * rotationSpeed); return act.ToArray(); } // If the vector action space type is discrete, then we don't do anything. else { return new float[1]{ 1f }; } } public List MakeMemory(List state, List observation, float reward, bool done, List memory) { return new List(); } }