资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

怎么通过unity调用ios原生代码

这篇文章将为大家详细讲解有关怎么通过unity调用ios原生代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

专注于为中小企业提供成都网站制作、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业漯河免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

首先我们要在界面上建立一个按钮, 方法有几种,你可以用ngui建立,也可以直接写GUI代码

这里我先用简单的GUI代码吧

GUI 的意思就是 图形用户接口, 就是一个产生界面的东西

首先在我们的

MetaioSDK 控件上添加一个脚本

点击add component

怎么通过unity调用ios原生代码

选择new script

怎么通过unity调用ios原生代码

起个名字,然后点击 create and add。我们这里选择的是C#脚本,你还可以用javaScript或者Boo

怎么通过unity调用ios原生代码

然后就会看见多了一个脚本出来

怎么通过unity调用ios原生代码

这时候双击脚本文件,进入monoDevelop 编辑脚本

怎么通过unity调用ios原生代码

每个刚开始创建的脚本都会自动填充两个方法,一个就是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 代码

怎么通过unity调用ios原生代码

怎么通过unity调用ios原生代码

点击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原生代码”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


标题名称:怎么通过unity调用ios原生代码
标题链接:http://cdkjz.cn/article/jjsshh.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220