我正在尝试使用本机库来修改字节数组(实际上是uint16数组)的内容。我在Unity(C#)中具有数组,在C ++中具有本机库。
我尝试了几件事,我能做的最好的事情就是成功调用本机代码并能够将布尔值返回给C#。当我在C ++中传递数组并将其变异时,问题就来了。不管我做什么,该数组在C#中都保持不变。
这是我在Unity方面拥有的东西:
// In Update().
using (AndroidJavaClass processingClass = new AndroidJavaClass(
"com.postprocessing.PostprocessingJniHelper"))
{
if (postprocessingClass == null) {
Debug.LogError("Could not find the postprocessing class.");
return;
}
short[] dataShortIn = ...; // My original data.
short[] dataShortOut = new short[dataShortIn.Length];
Buffer.BlockCopy(dataShortIn, 0, dataShortOut, 0, dataShortIn.Length);
bool success = postprocessingClass.CallStatic(
"postprocess", TextureSize.x, TextureSize.y,
dataShortIn, data