public EnvData(int ad, SelectedObjectData sk, SelectedObjectData ac, Camera cam) { action_dim = ad; obs_dim = 10; //dummy variable score_keeper = sk; action_controller = ac; camera_p = new VectorData(cam.transform.position); camera_hpr = new VectorData(cam.transform.rotation.eulerAngles); }
public AsteroidData(Buffer[] input_buffers, AsteroidMaterial[] input_materials, AsteroidObjectList[] input_object_lists, AsteroidObject action_controller, AsteroidObject score_keeper, int action_dim, Camera cam, Light[] lights, AsteroidConstraint[] constraints) { //Create buffers List <BufferData> bufferList = new List <BufferData>(); foreach (Buffer buf in input_buffers) { bufferList.Add(new BufferData(buf)); } buffers = bufferList.ToArray(); //Materials List <MatieralData> matList = new List <MatieralData>(); foreach (AsteroidMaterial mat in input_materials) { matList.Add(new MatieralData(mat)); } materials = matList.ToArray(); //Set up special objects SelectedObjectData sk = new SelectedObjectData("", 0); SelectedObjectData ac = new SelectedObjectData("", 0); //Create object list List <ModelData> modelList = new List <ModelData>(); List <ObjectData> objectList = new List <ObjectData>(); List <AsteroidObject> asteroidObjectList = new List <AsteroidObject>(); List <ObjectListData> objListList = new List <ObjectListData>(); foreach (AsteroidObjectList asteroid_object_list in input_object_lists) { //Create objects AsteroidObject[] asteroid_objects = asteroid_object_list.GetComponentsInChildren <AsteroidObject>(); List <SelectedObjectData> selected_objects = new List <SelectedObjectData>(); //Encode each object, each model, and also create a reference to it foreach (AsteroidObject obj in asteroid_objects) { int obj_id = objectList.Count; objectList.Add(new ObjectData(obj, obj_id)); asteroidObjectList.Add(obj); modelList.Add(new ModelData(obj.gameObject)); selected_objects.Add(new SelectedObjectData(obj.object_name, obj_id)); if (obj == action_controller) { ac = new SelectedObjectData(obj.object_name, obj_id); } if (obj == score_keeper) { sk = new SelectedObjectData(obj.object_name, obj_id); } } SelectedObjectData[] selected_objects_final = selected_objects.ToArray(); objListList.Add(new ObjectListData(asteroid_object_list, selected_objects_final)); } object_lists = objListList.ToArray(); models = modelList.ToArray(); objects = objectList.ToArray(); //Create lights List <LightData> lightList = new List <LightData>(); foreach (Light light in lights) { lightList.Add(new LightData(light)); } light_data = lightList.ToArray(); //Create constraints List <ConstraintData> constraintList = new List <ConstraintData>(); foreach (AsteroidConstraint constraint in constraints) { constraintList.Add(new ConstraintData(constraint, asteroidObjectList)); } constraint_data = constraintList.ToArray(); //Finally, do the config env_config = new EnvData(action_dim, sk, ac, cam); }