Example #1
0
 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);
 }
Example #2
0
    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);
    }