unity 和android 交互之回调

阅读: 评论:0

unity 和android 交互之回调

unity 和android 交互之回调

当想调用androidSDK里面的接口,当接口里面的行为处理完了之后想要做其他的事时,我们怎么办呢?

如果你写死了,而且不能够随机应变。当需要处理其他的行为时。

例如:当你想调用androId原生广告播放接口时,当广告播放完之后你需要添加金币的行为,这个时怎么加入到接口中,这个就要用了回调了

首先需要在anroid里面加入一个回调接口

1.例如广告接口`

public interface AdCallback {void onDismissed();void onNoAd(AdError adError);void onComplete();void onPresent();void onClick();void onAdSkip();
}

2.需要在unity中也要添加一样的类

public class AdCallback : AndroidJavaProxy
{public Action Dismissed;public Action OnNoAd;public Action OnComplete;public Action OnPresent;public Action OnClick;public Action OnAdSkip;public AdCallback(string interfaceName) : base(interfaceName){}public void onDismissed(){Dismissed?.Invoke();}public void onNoAd(AndroidJavaObject adError){OnNoAd?.Invoke();}public void onComplete(){OnComplete?.Invoke();}public void onPresent(){OnPresent?.Invoke();}public void onClick(){OnClick?.Invoke();}public void onAdSkip(){OnAdSkip?.Invoke();}}

好了前期准备好了

现在就是需要添加广告接口
比如下面是广告接口的类

  public class PlayAd implements AdCallback{private AdCallback _adCallback public static void ShowReward(AdCallback adCallback) {Log.e("广告:", "广告");_adCallback = adCallback;//播放广告的逻辑}@Overridepublic void onDismissed() {_Dismissed();}@Overridepublic void onNoAd(AdError adError) {_NoAd(adError);}@Overridepublic void onComplete() {_Complete();}@Overridepublic void onPresent() {_Present();}@Overridepublic void onClick() {_Click();}@Overridepublic void onAdSkip() {_AdSkip();}}

然后就是在unity 里面调用了

public class NewAdMgr
{public const string AdCallbackPath = "com.bytedance.android";private AndroidJavaClass jcAd;public void Init(){
#if UNITY_ANDROIDjcAd = new AndroidJavaClass(AdCallbackPath );
#endif}public void ShowReward_Ad(AdCallback adCallback){//var  currentActivity = jc.GetStatic<AndroidJavaObject>("currentActivity");jcAd.CallStatic("ShowReward", adCallback);}public void ShowReward(){AdCallback adCallback = new AdCallback(AdCallbackPath);adCallback.Dismissed = () => { };ShowReward_Ad(adCallback);}
}

public void ShowReward(Action action)
{
AdCallback adCallback = new AdCallback(AdCallbackPath);
adCallback.Dismissed = () => { action?.Invoke();};
ShowReward_Ad(adCallback);
}
这个方法调用就是播放广告

欢迎各位大佬指出问题

本文发布于:2024-02-04 21:59:26,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170717359159982.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:回调   unity   android
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23