关于Unity3D中的UnitySendMessage方法的使用!!!

UnitySendMessage这个方法相信很少朋友注意到它的使用,因为根本就无法在unity编辑时使用,但是它有一个神奇的地方就是可以完成dllimport的方法回调时使用,这样说好像有些抽象,我可以举一个例子。

很多朋友开发ios客户端游戏,难免有人会用到付费啊,排行榜之类的功能,我这里先不讲使用什么第三方插件什么的,我这里就说明下是通过在xcode下编辑相关的调用代码,最后通过dllimport方法让unity调用实现两边通信。

相信上面说的dllimport方法也有人了解过,这时候重点来了,如果用户付费,肯定会有一个结果,比如付费成功,付费失败这样,xcode底下是挂一个notification就是有点类似于监听器的东西,当有一个结果返回时就调用,这时候怎么办?xcode下的回调方法我在unity下怎么知道它什么时候回调过来?于是UnitySendMessage这个方法就诞生了,在回调方法被触发时,我们通过UnitySendMessage方法把结果发给unity,让unity这边处理。


UnitySendMessage(“string”,“string”, ***),这是方法,我们至少需要传入两个参数,第一个参数为unity中的一个gameobject名称,第二个参数为这个gameobject身上捆绑的脚本中的一个方法,而第三参数事实上是这个对应方法上的参数,有没有参数就看你了。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要追踪Unity3D应用程序点击事件触发的方法,可以使用Frida的API来追踪Unity3D引擎方法调用。 以下是一个简单的示例: 1. 首先,使用Frida的Python API连接到目标Unity3D应用程序: ``` import frida # 连接到目标应用程序 session = frida.attach("com.example.unity3dapp") ``` 2. 然后,使用Frida的API获取Unity3D引擎方法地址: ``` # 获取目标方法地址 target_method_address = session.get_export_by_name("_ZN2X53XCall5ApplyEP19MonoMethodDescriptionPvS2_P6Objecti").address ``` 3. 接下来,使用Frida的API创建一个JavaScript脚本,追踪目标方法的调用: ``` # 创建JavaScript脚本,追踪目标方法的调用 script = """ Interceptor.attach(ptr("%s"), { onEnter: function(args) { console.log("[*] Unity3D method called: " + args[1].readCString()); } }); """ % target_method_address # 加载JavaScript脚本 session.create_script(script).load() ``` 4. 最后,触发Unity3D应用程序的点击事件,查看监视结果: 在Unity3D应用程序触发点击事件,Frida就会输出类似以下内容的日志: ``` [*] Unity3D method called: UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions) [*] Unity3D method called: UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions) [*] Unity3D method called: UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions) ``` 以上示例,我们通过Frida注入JavaScript代码,找到了目标方法的地址,并追踪了其调用。当然,实际应用可能需要更加复杂的逻辑和技巧,具体还需根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值