Unity与Ios的交互传值

准备工作

我们可以用Xcode创建个项目将一个.h,.m文件拷贝到Unity的指定路径

项目-->Assets-->Plugins-->iOS就ok了

1:oc代码向unity传值 

首先在.h文件里声明一下方法,这里参数可以更改,但名字不要改(这里要在@end后写)

extern void UnitySendMessage(const char *,const char *,const char *);

然后就可以在.m文件里调用了

UnitySendMessage("A","B","C");

A:unity脚本挂载的gameobject(我们项目常有一个MainCamera,因此我用的都是用这一个,防止以后交互多了混乱)

B:方法名(这里我的理解是在A物体上挂的脚本里面写方法)

C:这个就是我们的参数了(因为之前定义的是const char *,所以参数形式为“1”这样的,不要@“1”这样写),因为传到Uunity里会因为类型的问题出错

到这里等程序调用到方法的时候就发到unity里了,那在unity里面怎么接受呢

相当简单,就是写个B方法就ok了,当然当unity脚本中的方法为静态方法时,这个方法无效,所以只能调用非静态的方法

2:unity想ios发消息

首先还是需要在oc代码里写好方法

首先.h(这里要在@end后写)

 extern "C"

{

void GetProDuctId(const char * ProductId);

void GetURL(const char * Url,const char * PlayerId);

}

其次.m文件

方法的位置和我们平常写的不太一样(要在#import之后,@interface之前)(这个我也没弄清楚。。。我自己试着是可以的)

那么在unity脚本里怎么发消息呢

首先导入头文件

usingSystem.Runtime.InteropServices;

然后有一个固定写法,这里我贴一下代码 这里就相当于声明(个人理解)

public class BanShopMoneyGUI:BaseUI

{

#ifUNITY_IPHONE

[DllImport("__Internal")]

private static extern void GetProDuctId(stringID);

[DllImport("__Internal")]

private static extern void GetURL(stringURL,stringID);

#endif

}

然后再代码里调用

#ifUNITY_EDITOR

#elifUNITY_IPHONE

GetProDuctId (“A”);

GetURL(“B”,C);

#endif

到这里就ok了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 史上最全的iOS面试题及答案 iOS面试小贴士———————————————回答好下面的足够了----------...
    Style_伟阅读 2,434评论 0 35
  • Linux 进程管理与程序开发 进程是Linux事务管理的基本单元,所有的进程均拥有自己独立的处理环境和系统资源,...
    JamesPeng阅读 2,512评论 1 14
  • 1、Objective-C的类可以多重继承么?可以采用多个协议么?答:不可以多重继承,可以采用多个协议。2、#im...
    亦晴工作室阅读 642评论 0 3
  • 本文介绍了iOS和Unity交互,主要涉及两个界面之间的跳转. 如果对iOS和Unity交互传参方法不熟悉的朋友,...
    o惜乐o阅读 6,073评论 5 17
  • 周三晚上,佑又对我说:“爷爷,明天要带一样动物,一样植物。”我没有多在意他说的话,我说:“把小乌龟带去吧。...
    李云刚阅读 260评论 0 1