unity向android传递数组,将字节数组从Unity传递到Android(C ++)进行修改

本文介绍了在Unity中尝试通过本机库将short数组传递到Android C++进行修改的问题。在Unity中创建了一个AndroidJavaClass实例,并尝试使用BlockCopy方法复制数组。C++部分通过JNI接收数组,但对数组的修改并未反映回Unity。问题可能在于数据传递和释放的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在尝试使用本机库来修改字节数组(实际上是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, dataShortOut);

Debug.Log("Processed successfully: " + success);

}

Unity项目在Plugins / Android中具有postprocessing.aa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值