unity调用ios原生代码objective-c和回调
从c#到objective-c学习
https://www.runoob.com/w3cnote/objective-c-tutorial.html
https://www.jianshu.com/p/6328c55ac4b2
http://www.cnblogs.com/wuhuacong/p/3589699.html
进阶 https://www.xuanyusong.com/archives/category/ios/objective-c
网上说的教程太复杂,这里我给个最简单版本的
但是首先你要学会ios打包发布 https://www.cnblogs.com/sanyejun/p/8308873.html

第一步 新建一个NativeBinding.mm文件在上图这个位置,名字随便,别的也行
里面的代码
extern "C" {
void FooPluginFunction() {
//打log
NSLog(@"Hello World!");
//回调unity
UnitySendMessage("OSEvent","testBtnResult", "chuang_chuang");
}
}
如果这个方法调用成功,那么xcode控制台会打log,并且回调unity方法 testBtnResult
新建物体,挂上脚本

这个脚本
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.UI; public class CallOS : MonoBehaviour { public Button testButton;
public Text text; // Use this for initialization
void Start () {
int a = ;
testButton.onClick.AddListener(delegate
{
Debug.Log("click");
text.text = "haha" + a++;
if (Application.platform == RuntimePlatform.IPhonePlayer)
{
//点击按钮触发
FooPluginFunction();
}
});
} //ios原生方法接口,方法名和mm文件里面的方法相同
[DllImport("__Internal")]
static extern void FooPluginFunction(); //objective-c方法的回调
public void testBtnResult(string msg)
{
Debug.Log("btnPressSuccessssssssssss:" + msg);
}
}
XUPorter插件自动配置sdk
http://www.xuanyusong.com/archives/2720
https://fengyu.name/article/469
告别手动配置,非常方便
unity调用ios原生代码objective-c和回调的更多相关文章
- Unity与iOS原生代码之间的相互调用
1.Unity调用iOS: 1.1.在Unity C#中: [ DllImport( "__Internal" )] private static extern int _show ...
- Cordova - 与iOS原生代码交互2(使用Swift开发Cordova的自定义插件)
在前一篇文章中我介绍了如何通过 js 与原生代码进行交互(Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)),当时是直接对Cordova生成的iOS工程项目进行编辑操作的(添加 ...
- PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码
PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码 看看新闻网>看引擎>开源产品 0人收藏此文章, 发表于8小时前(2013-09-06 00:39) ...
- Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)
在前面的文章中介绍的了如何使用Cordova进行跨平台应用的开发,使用Cordova的话基本上就不需要在写系统原生代码了,只要通过编写html页面和js方法即可. 但在有些特殊情况下,还是是需要htm ...
- JavaScript调用App原生代码(iOS、Android)通用解决方案
实际场景 场景:现在有一个H5活动页面,上面有一个登陆按钮,要求点击登陆按钮以后,唤出App内部的登录界面,当登录成功以后将用户的手机号返回给H5页面,显示出来.这个场景应该算是比较完整的一次H5中的 ...
- 混合app开发,h5页面调用ios原生APP的接口
混合APP开发中,前端开发H5页面,不免会把兼容性拉进来,在做页面的兼容性同事,会与原生app产生一些数据交互: 混合APP开发,安卓的兼容性倒是好说,安卓使用是chrome浏览器核心,已经很好兼容H ...
- 关于Unity发布iOS平台代码混淆问题
之前在越狱手机里找到<永恒战士3>的程序发现是用Unity做的,拷出资源出来看的时候发现里面有游戏程序集,立马抽出来反编译了一下,发现里面的代码只有方法签名,没有方法体,还以为用什么高端混 ...
- vue.js 调用iOS原生方法,JavaScriptCore
1. 2. 3. 4.vue.js调用
- unity 和 iOS/Android 信息交互(方法调用)
参考文章均来源于[大神雨松momo]的文章. unity -> iOS // unity 程序 usingSystem.Runtime.InteropServices; usingUnityEn ...
随机推荐
- 基于JSP的B2C的网上拍卖系统_秒杀与竞价-JavaWeb项目-有源码
开发工具:Myeclipse/Eclipse + MySQL + Tomcat 项目简介: 基于B2C的网上拍卖系统主要用于帮助人们应用互联网方便快捷买到自己所中意的商品,并参与到秒杀与竞拍当中.主要 ...
- 设置ArcGIS地图文档的数据源为相对路径
ArcGIS中默认情况下,地图文档的数据源路径为绝对路径.在这种情况下,如果移动/拷贝地图文档及其数据源后,再次打开地图文档时,就看不到具体图层数据了(图层列表中图层前有“!”图标,并且无法查看图层数 ...
- C#反射的基本应用
反射描述了在运行过程中检查和处理程序元素的功能.反射可以完成以下任务: 枚举类型的成员: 实例化新对象: 执行对象的成员: 查找类型的信息: 查询程序集的信息: 检查应用于某种类型的自定义特性: 创建 ...
- WPF MaterialDesignInXamlToolkit锁屏恢复后页面冻结的问题
在做WPF项目时,用到 MaterialDesignInXamlToolkit 开源项目.结果客户用的时候发现这个问题,锁屏后,界面不刷新. 如果不用MaterialDesign,测试后不会出现这个问 ...
- controller 状态码
工具使用lombok表示.如没有使用lombok 请 删除@Getter @Setter 并给get set方法 调用方法: 类型使用 Status ---> public ...
- 【QTP专题】02_时间同步点问题
一.什么是同步点 同步点是指在一个测试过程中,指示QuickTest等待应用程序中某个特定过程运行完成以后再运行下一步操作.Waits until the specified object prope ...
- Metabase 从 H2 迁移到 MySQL 踩坑指南
写在前面的话 首先如果你看到了这篇文章,可能你就已经指定 Metabase 是啥了,我这里还是简单的做个说明: Metabase is the easy, open source way for ev ...
- “全栈2019”Java第二十一章:流程控制语句中的决策语句if
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Elasticsearch NEST使用指南:映射和分析
NEST提供了多种映射方法,这里介绍下通过Attribute自定义映射. 一.简单实现 1.定义业务需要的POCO,并指定需要的Attribute [ElasticsearchType(Name = ...
- Ubuntu16.04安装视觉SLAM环境(ceres-solver)
1.先在github上下载ceres-solver git clone https://github.com/ceres-solver/ceres-solver.git 2.安装ceres-solve ...