在Android中从Unity获取纹理

时间:2018-08-26 06:31:35

标签: java android unity3d

早上好。

我想使用Android插件将图像保存到Internal Storage并从Internal Storage导入图像。

在Unity中保存图像时,用户可以访问保存的图像。 我不希望用户访问存储的图像。 因此,我尝试创建和使用Android插件,但无法正常工作。

我需要帮助。

Android本机代码:

public void WriteToInternalStorage(String name, byte[] data) {
    try{
        FileOutputStream fileOutputStream = context.openFileOutput(name, context.MODE_PRIVATE);
        fileOutputStream.write(data);
        fileOutputStream.close();
    } catch(IOException e) {
        e.printStackTrace();
    }
}

public byte[] ReadToInternalStorage(String name) {
    StringBuffer stringBuffer = new StringBuffer("");
    byte[] buffer = new byte[1024];
    int n;
    try {
        FileInputStream fileInputStream = context.openFileInput(name);
        InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
        String line;
        while((line = bufferedReader.readLine()) != null) {
            stringBuffer.append(line);
        }

    } catch (IOException e) {
        e.printStackTrace();
    }

    return  String.valueOf(stringBuffer).getBytes();
}

统一代码:

public void NativeCall_ReadInternalStorage(string name)
{
    byte[] test = instance.Call<byte[]>("ReadToInternalStorage", name);

    Texture2D tex = new Texture2D(2, 2);
    tex.LoadImage(test);
    Thumbnail.texture = tex;
}

图像显示不正确。 我不知道Android本机代码有什么问题。

请帮助我。

0 个答案:

没有答案