Unity3D 与 objective-c 之间数据交互。iOS SDK接口封装Unity3D接口
原地址:http://www.cnblogs.com/qingjoin/p/3638915.html
Unity 3D 简单工程的创建。与Xcode 导出到iOS 平台请看这
Unity3D 学习 创建简单的按钮、相应事件
Unity C# 代码

using UnityEngine;
using System.Collections;
using System.Runtime.InteropServices; public class testFeil : MonoBehaviour { [DllImport("__Internal")]
private static extern void c_ctest(); // Use this for initialization
void Start () { } // Update is called once per frame
void Update () { } void OnGUI()
{
//开始按钮 创建了一个按钮。
if(GUI.Button(new Rect(20,100,200,50),"qingyun "))
{
//System.Console.WriteLine("hello world");
print("hello qingyun !");
c_ctest();
// Debug.Log("up.up");
} } void testResult (string msg)
{
Debug.Log("testResult:" +msg);
} //这个是C#里的一个回调。用来接收数据是否传送成功。----这里的作用就是OC里的回调。
void testBtnResult (string msg)
{
Debug.Log ("btnPressSuccessssssssssss:"+msg);
}
}

.mm 文件里的OC 与 C 接口

//
// MeiyuPushSdkC.m
// MeiYuPushDemo
//
// Created by qingyun on 3/31/14.
// Copyright (c) 2014 qingyun. All rights reserved.
// #import "MeiyuPushSdkC.h"
#import "MeiyuPushSdk.h" @interface MeiyuPushSdkC : NSObject<MeiyuPushSdkDelegate> @end @implementation MeiyuPushSdkC - (id)init
{
id object = [super init]; [[MeiyuPushSdk my_initPush]setDelegate:self];
//sdk.delegate = self;
NSLog(@"initMeiyuPushSdkC");
return object;
} -(void)cTestResult
{
UnitySendMessage("Main Camera", "testBtnResult", "成功啦.哇哈哈哈");
} @end MeiyuPushSdkC *m_pushSdk = NULL; #if defined (__cplusplus)
extern "C"
{
#endif void c_ctest()
{
if(m_pushSdk == NULL)
{
m_pushSdk = [[MeiyuPushSdkC alloc]init];
}
MeiyuPushSdk *m = [MeiyuPushSdk my_initPush]; //objc_msgSend(obj, @selector(setName:),@"balabala");
[m cTest];
NSLog(@"testSuccess---------");
UnitySendMessage("Main Camera", "testResult", "-10862904$_^_$接口调用失败");
} #if defined (__cplusplus)
}
#endif

这样就把Unity3d 与OC 连到了一起。
具体可参考 unityFile.zip
Unity3D 与 objective-c 之间数据交互。iOS SDK接口封装Unity3D接口的更多相关文章
- Vue中独立组件之间数据交互
独立组件之间数据交互:通过自定义事件 组件A中的[数据],传递给组件B 1.创建组件A,组件B 2.组件B在实例创建完成时就开始监听事件[等待接收数据]:钩子 3.组件A中触发事件,发送数据 注意:接 ...
- python之 《进程之间数据交互和进程池》
1.进程q 进程呢就相当于一个房子,线程就相当于是房子里面在工作的人,那么一个房子的空间对于房子里面的人来说是共享的, 现在是多进程,也就是说有许多房子,很显然这个房子的空间只属于这个房子,不会属于其 ...
- Unity3D 与 objective-c 之间数据交互。iOS SDK接口封装Unity3D接口 .-- 转载
Unity 3D 简单工程的创建.与Xcode 导出到iOS 平台请看这 Unity3D 学习 创建简单的按钮.相应事件 Unity C# 代码 using UnityEngine; using Sy ...
- 8.【nuxt起步】-vue组件之间数据交互
那么现在问题来了,我现在是在index.vue获取了服务端的数据,怎么传值到maincontent.vue?当然你也可以把获取数据放在maincontent.vue,但假如有些数据同时在header, ...
- Vue组件之间数据交互与通信
Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 一.父组件向子组件传递数据 在 Vue 中,可以使用 props 向子组件传 ...
- 【笔记】.NET开发环境下使用PostgreSQL+Oracle_fdw 实现两个数据库之间数据交互操作(二)
一 新的可视化工具 因为前文所提到的,看不到外部服务器和外部表的问题,我更换了可视化工具. 好用的新工具PostgreSQL Maestro! 当然如此好用的工具不是免费的,如果想免费使用还请自己去找 ...
- Unity3d 与 Objective-C 数据交互,持续更新中
Unity 3D是用于3D游戏编程的语言,它是一个用C\C++编写的强大的库.而在游戏中经常要接入用OC编写的SDK,这就涉及到了Unity3d 和 OC之间的数据交互.XCode是完成兼容C语言的. ...
- Android进阶之Fragment与Activity之间的数据交互
1 为什么 因为Fragment和Activity一样是具有生命周期,不是一般的bean通过构造函数传值,会造成异常. 2 Activity把值传递给Fragment 2.1 第一种方式,也是最常用的 ...
- python的进程间的数据交互
#先来看下如何实现多进程 # multiprocessing 这个是python的多进程的模块,我们会用到这个模块的很多方法 from multiprocessing import Process i ...
随机推荐
- 一些常用css技巧的为什么(二)我所理解的line-height
要用到的基本术语和概念: 替换元素:用作为其他内容占位符的一个元素,或说替换元素内容的部分并非由文档内容直接表示.比如img元素它由文档本身之外的一个图像来替换,比如input元素要由一个单选按钮,复 ...
- Angular2中的metadata(元数据)
@Attrubute() 从host element 中获得普通(不是@Input)属性对应的值 适用于组件嵌套或指令, 从父组件向子组件传递数据 app.component.ts import {C ...
- 《锋利的jQuery》心得笔记--Two Sections
第三章 1. DOM操作(节点) 1) 查找节点可以查找元素节点和属性节点 2) 创建节点: (1) 创建元素节点 var addLi = $(“&l ...
- 安装Java EE失败,解决方案
笔者安装Java EE(版本是java_ee_sdk-7-jdk7-windows-x64-ml.exe)时,遇到错误提示提示"Could not find the required ver ...
- 《Linux系统free命令的使用》学习笔记
free命令用于显示当前系统的内存空闲和使用情况,其中包括物理内存,交换分区内存,内核缓冲区内存以及高速缓存,free的参数报错一下: -b ——字节的方式显示内存使用情况 [root@redhat ...
- FastDFS4 + Ubuntu12安装及部署
1. 安装libevent 如果需要使用http进行下载,需要安装这个组件. 2. 安装fastdfs 3. 配置fastdfs 4. 安装nginx 问题4.1:安装nginx启动后访问原先资源UR ...
- js 如何获取文本框中光标索引位置
function getTxt1CursorPosition(){ var oTxt1 = document.getElementById("txt1"); var cursurP ...
- IOS_问题: Xcode8 安装KSImageName插件, 编代码就崩了
Xcode 8之后, KSImageName插件就不能用了,如果安装了,就会导致一写英文代码Xcode 就崩了. 解决方法: 把这个插件删除,重启了一下xcode就可以了, 如果重启没用, 可以尝试下 ...
- jQuery基础选择器
attr()方法的功能是设置或获取元素的某项属性值. attr("disabled", "true”)表示使该功能不可用. #id 选择器 $("#my_id& ...
- js阻止冒泡事件及默认操作
1. 事件目标 现在,事件处理程序中的变量event保存着事件对象.而event.target属性保存着发生事件的目标元素.这个属性是DOM API中规定的,但是没有被所有浏览器实现 .jQuery对 ...