扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章将为大家详细讲解有关怎么通过unity调用ios原生代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供网站制作、成都网站建设、网站策划、网页设计、域名与空间、虚拟主机、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。首先我们要在界面上建立一个按钮, 方法有几种,你可以用ngui建立,也可以直接写GUI代码
这里我先用简单的GUI代码吧
GUI 的意思就是 图形用户接口, 就是一个产生界面的东西
首先在我们的
MetaioSDK 控件上添加一个脚本
点击add component
选择new script
起个名字,然后点击 create and add。我们这里选择的是C#脚本,你还可以用javaScript或者Boo
然后就会看见多了一个脚本出来
这时候双击脚本文件,进入monoDevelop 编辑脚本
每个刚开始创建的脚本都会自动填充两个方法,一个就是start()
另一个是update();
Start()方法看名字就知道是一个做一些初始化操作的方法,所以你的一些初始化操作都可以在start 里面进行
update方法就是在你程序运行的每一帧都会执行一次的方法,所以可以在里面进行更新操作
在这里因为涉及到GUI,所以我们添加一个方法
OnClick:
void OnGUI () {
if( GUI.Button( new Rect( Screen.width - 200,
0, 200, 100),"Back"))
{
}
}
很简单,就是画一个button 在屏幕右上角,下面是这篇的关键
要调用ios代码, 首先要在开头加一句
using System.Runtime.InteropServices;
然后在类体内,我们要声明我们的ios外部方法
[DllImport("__Internal")]
extern static public void _callPhone( string str );
然后我们在 方法就行了,完整代码如下
using UnityEngine;
using System.Collections;
using System.Runtime.InteropServices;
public class CallPhone : MonoBehaviour {
[DllImport("__Internal")]
extern static public void _callPhone( string str );
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnGUI () {
if( GUI.Button( new Rect(
Screen.width - 200,
0,
200,
100),"Back")) {
_callPhone( "13845129527" );
}
}
}
到这里unity的工作就完成了, 还是跟之前一样,导出build一次xcode工程
接下来的任务在xcode中完成
也很简单,打开xcode工程, 只需要在class目录中添加两个文件,这两个文件我已经写好,一会放到附件给大家下载, 文件内容很简单, 都是OC 代码
点击add 之后就可以运行了,然后你点击屏幕左上角就可以播电话了, 如果你吧callphone的参数改为变量还可以自定义 号码,是不是比较cool
下面我们来解析一下文件中的代码 , unityplugin.h文件基本没什么内容, 我们直接看unityplugin.mm 文件
这里面主要就是一个方法
extern “C”{
void _callPhone( char* str )
{
NSString* astr = [[NSString alloc] initWithCString:str encoding:(NSUTF8StringEncoding)];
NSString* titl = @"tel://";
NSString* allstr = [ titl stringByAppendingString:astr ];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:allstr]];
}
}
有程序基础的应该都能看得懂吧,先用utf8格式初始化参数字符串
NSString* astr = [[NSString alloc] initWithCString:str encoding:(NSUTF8StringEncoding)];
2,3句代码就是把字符串组合一下
NSString* titl = @"tel://";
NSString* allstr = [ titl stringByAppendingString:astr ];
最后一句,就是拨号出去了
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:allstr]];
然后在这里面我们还可以添加其他功能代码,比如调用email
void _takeEmail( char* str )
{
NSString* astr = [[NSString alloc] initWithCString:str encoding:(NSUTF8StringEncoding)];
NSString* titl = @"mailto://";
NSString* allstr = [ titl stringByAppendingString:astr ];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:allstr]];
}
关于“怎么通过unity调用ios原生代码”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流