Пример #1
0
    //Sends request to database to get an image
    public IEnumerator GetImage(int id, string dest)
    {
        RetinaImage retinaImage = new RetinaImage();
        WWWForm     form        = new WWWForm();

        form.AddField("id", id);
        form.AddField("clientType", "app");

        using (UnityWebRequest www = UnityWebRequest.Post("http://ec2-13-58-160-235.us-east-2.compute.amazonaws.com/request.php", form))
        {
            yield return(www.SendWebRequest());

            if (www.isNetworkError || www.isHttpError)
            {
                Debug.Log(www.error);
            }
            else
            {
                Debug.Log("Webserver request complete");

                string phrase = www.downloadHandler.text;

                retinaImage = JsonUtility.FromJson <RetinaImage>(phrase);

                Debug.Log("Retina image object updated.");

                SaveToFile(retinaImage, dest);
                runs--;
            }
        }
    }
Пример #2
0
    //Gets all image files from folder to create buttons
    private IEnumerator findImages()
    {
        DirectoryInfo dir = new DirectoryInfo(folder);

        FileInfo[] info = dir.GetFiles();
        FileStream f;

        foreach (FileInfo file in info)
        {
            RetinaImage retinaImage = new RetinaImage();

            if (file.Extension.Contains("dat"))
            {
                yield return(f = File.OpenRead(file.FullName));

                BinaryFormatter bf = new BinaryFormatter();
                RetinaImage     tempRetinaImage = (RetinaImage)bf.Deserialize(f);
                retinaImage.id       = tempRetinaImage.id;
                retinaImage.name     = tempRetinaImage.name;
                retinaImage.xSize    = tempRetinaImage.xSize;
                retinaImage.ySize    = tempRetinaImage.ySize;
                retinaImage.filetype = tempRetinaImage.filetype;
                retinaImage.official = tempRetinaImage.official;
                retinaImage.uploaded = tempRetinaImage.uploaded;
                retinaImage.image    = tempRetinaImage.image;
                retinaImage.labels   = tempRetinaImage.labels;
                f.Close();

                StartCoroutine(makeButton(retinaImage));
            }
        }
    }
Пример #3
0
    //Saves image file from database
    public void SaveToFile(RetinaImage retinaImage, string dest)
    {
        FileStream file;

        file = File.Create(dest);

        BinaryFormatter bf = new BinaryFormatter();

        bf.Serialize(file, retinaImage);
        file.Close();

        StartCoroutine(makeButton(retinaImage));
    }
Пример #4
0
    //Creates a button with image
    private IEnumerator makeButton(RetinaImage retinaImage)
    {
        //Gets image bytes from file and creates texture to place on button
        byte[]    imageBytes = Convert.FromBase64String(retinaImage.image);
        Texture2D texture    = new Texture2D(retinaImage.xSize, retinaImage.ySize);

        yield return(texture.LoadImage(imageBytes));

        GameObject newButton = Instantiate(button) as GameObject;

        newButton.transform.SetParent(buttonholder.transform, false);
        newButton.GetComponent <RawImage>().texture    = texture;
        newButton.GetComponent <changeImage>().texture = texture;
        newButton.GetComponent <changeImage>().labels  = retinaImage.labels;

        //Adds collider to button that spans the size of the cell of the grid layout group
        //The collider is only needed for VR
        BoxCollider collider = newButton.gameObject.AddComponent <BoxCollider>();

        collider.size = new Vector3(buttonholder.GetComponent <GridLayoutGroup>().cellSize.x, buttonholder.GetComponent <GridLayoutGroup>().cellSize.y);
    }