【小松教你手游开发】【unity实用技能】 unity 接WP8 sdk的一些心得
2018-03-10 15:52
597 查看
1.在wp8的sdk中,sdk可以在vs中生成的.dll文件,放在unity的plugins文件夹里面,unity的脚本就可以随意调用sdk中的函数,这样就已经可以做到unity传数据到手机上。
但很多时候为了耦合性低一点,会在sdk上在封装一层(或者说在sdk的基础上),在unity打包出来的vs工程上的MainPage.xaml.cs文件上写调用函数。然后在unity上写event事件,以发送信息的形式让vs工程捕捉。这样的话dll文件就不用放在unity工程上,在vs工程再添加引用
事例:
unity端:一个包含调用函数的脚本xxxwp8.cs。一个包含回调的脚本xxxwp8Controller.cs
在xxxwp8.cs脚本中注册两个事件
一个是初始化sdk,一个是支付。
写两个全局函数供其他脚步调研
这边基本就完成。
接下来是包含回调的脚步xxxwp8Controller.cs
首先是购买成功失败回调事件
接着是回调函数
现在两个回调事件的没有代理,所以在要使用的地方加上代理如
这两个函数为空函数也没关系。函数内容写在回调类的函数里就可以。
unity端就是这样。不用加.dll文件进unity的plugins文件夹中。
然后是打出来的包的vs端。首先是要根据sdk给予的文档加各种引用,修改各种参数。
接下来是重点。
修改MainPage.xaml.cs文件。
首先让vs工程能找到你的unity的脚本
这样xxxControllerScript就可以在下面的回调中直接调用unity脚本上的函数。
上面也能看到。
这样的目的就可以使当unity工程上的脚本的世界触发以后能在vs工程反应。
如果所接的sdk以接口方式回调,那就在class上继承接口。重写回调函数
这样就做到unity和vs之间双向通信
但很多时候为了耦合性低一点,会在sdk上在封装一层(或者说在sdk的基础上),在unity打包出来的vs工程上的MainPage.xaml.cs文件上写调用函数。然后在unity上写event事件,以发送信息的形式让vs工程捕捉。这样的话dll文件就不用放在unity工程上,在vs工程再添加引用
事例:
unity端:一个包含调用函数的脚本xxxwp8.cs。一个包含回调的脚本xxxwp8Controller.cs
在xxxwp8.cs脚本中注册两个事件
public static event Action<string> onPurchaseProduct; public static event Action<string,string> onInitSdk;
一个是初始化sdk,一个是支付。
写两个全局函数供其他脚步调研
public static void PurchaseProduct(string productID) { CustomEventArgs theEventArgs = new CustomEventArgs(); theEventArgs.args = productID; onPurchaseProduct(productID); } public static void initSdk() { CustomEventArgs theEventArgs = new CustomEventArgs(); theEventArgs.args = API_KEY; theEventArgs.args1 = API_SECRET; onInitSdk(API_KEY,API_SECRET); }
这边基本就完成。
接下来是包含回调的脚步xxxwp8Controller.cs
首先是购买成功失败回调事件
public static event Action<string> PurchaseSuccessEvent; public static event Action<string> PurchaseFailedEvent;
接着是回调函数
public void OnPurchaseSucceeded(string featureID) { } public void OnPurchaseFailed(string featureID) { }
现在两个回调事件的没有代理,所以在要使用的地方加上代理如
xxxWP8Controller.PurchaseSuccessEvent += OnSkyNetPurchaseSuccess; xxxWP8Controller.PurchaseFailedEvent += OnSkyNetPurchaseFailed;
OnSkyNetPurchaseSuccess,<pre name="code" class="csharp">OnSkyNetPurchaseFailed
这两个函数为空函数也没关系。函数内容写在回调类的函数里就可以。
unity端就是这样。不用加.dll文件进unity的plugins文件夹中。
然后是打出来的包的vs端。首先是要根据sdk给予的文档加各种引用,修改各种参数。
接下来是重点。
修改MainPage.xaml.cs文件。
首先让vs工程能找到你的unity的脚本
public static xxxSDKWP8Controller xxxControllerScript; private void Unity_Loaded() { xxxWP8.onPurchaseProduct += xxxWP8_onPurchaseProduct; xxxWP8.onInitSdk += xxxWP8_onInitSdk; xxxControllerScript = (xxxSDKWP8Controller)UnityEngine.Object.FindObjectOfType(typeof(xxxSDKWP8Controller)); }
这样xxxControllerScript就可以在下面的回调中直接调用unity脚本上的函数。
上面也能看到。
xxxWP8.onPurchaseProduct += xxxWP8_onPurchaseProduct; xxxWP8.onInitSdk += xxxWP8_onInitSdk;
这样的目的就可以使当unity工程上的脚本的世界触发以后能在vs工程反应。
如果所接的sdk以接口方式回调,那就在class上继承接口。重写回调函数
1.public partial class MainPage : PhoneApplicationPage, IPurchaseCallback,IInitSDKCallback 1.void IPurchaseCallback.OnPurchaseFailed(string id, string errorMsg) 2. { 3. xxxControllerScript.OnPurchaseSucceeded(id); 4. } 5. 6. void IPurchaseCallback.OnPurchaseSucceeded(string id) 7. { 8. xxxControllerScript.OnPurchaseSucceeded(id); 9. }
这样就做到unity和vs之间双向通信
相关文章推荐
- 【小松教你手游开发】【unity实用技能】ios接sdk,c++ 交叉引用解决方法
- 【小松教你手游开发】【unity实用技能】Assetbundle技术使用心得
- 【小松教你手游开发】【unity实用技能】Unity3D中Assetbundle技术使用心得
- 【小松教你手游开发】【unity实用技能】unity游戏移植到WindowsPhone8平台上的一些
- 【小松教你手游开发】【unity实用技能】unity ngui wp8上使用动态字体消失或碎片化的问
- 【小松教你手游开发】【unity实用技能】从NGUI的UIScrollview的实现原理延伸到ngui的层次,合并,drawcall生成原理
- 【小松教你手游开发】【unity实用技能】NGUI 自动适配屏幕大小
- 【小松教你手游开发】【unity实用技能】unity自带寻路Navmesh入门教程
- 【小松教你手游开发】【unity实用技能】计算目标物体是否在自己的扇形视野范围
- 【小松教你手游开发】【unity实用技能】unity发包优化(android一键发包)
- 【小松教你手游开发】【unity实用技能】ui加载及初始化
- 【小松教你手游开发】【unity实用技能】NGUI Scrollview的Reposition的几个
- 【小松教你手游开发】【unity实用技能】对象的简单平移与旋转
- 【小松教你手游开发】【unity实用技能】unity编辑器工具之加载预制和场景
- 【小松教你手游开发】【unity实用技能】unity 内存调试方法
- 【小松教你手游开发】【unity实用技能】Unity Mesh更新的时候增加内存
- 【小松教你手游开发】【unity实用技能】Unity3D_NGUI_性能优化实践_CPU卡顿
- 【小松教你手游开发】【unity实用技能】InvalidOperationException: out of sync
- 【小松教你手游开发】【unity实用技能】unity 几种触发事件
- 【小松教你手游开发】【unity实用技能】yiled return null在unity中的作用