原地址: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接口的更多相关文章

  1. Vue中独立组件之间数据交互

    独立组件之间数据交互:通过自定义事件 组件A中的[数据],传递给组件B 1.创建组件A,组件B 2.组件B在实例创建完成时就开始监听事件[等待接收数据]:钩子 3.组件A中触发事件,发送数据 注意:接 ...

  2. python之 《进程之间数据交互和进程池》

    1.进程q 进程呢就相当于一个房子,线程就相当于是房子里面在工作的人,那么一个房子的空间对于房子里面的人来说是共享的, 现在是多进程,也就是说有许多房子,很显然这个房子的空间只属于这个房子,不会属于其 ...

  3. Unity3D 与 objective-c 之间数据交互。iOS SDK接口封装Unity3D接口 .-- 转载

    Unity 3D 简单工程的创建.与Xcode 导出到iOS 平台请看这 Unity3D 学习 创建简单的按钮.相应事件 Unity C# 代码 using UnityEngine; using Sy ...

  4. 8.【nuxt起步】-vue组件之间数据交互

    那么现在问题来了,我现在是在index.vue获取了服务端的数据,怎么传值到maincontent.vue?当然你也可以把获取数据放在maincontent.vue,但假如有些数据同时在header, ...

  5. Vue组件之间数据交互与通信

    Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 一.父组件向子组件传递数据 在 Vue 中,可以使用 props 向子组件传 ...

  6. 【笔记】.NET开发环境下使用PostgreSQL+Oracle_fdw 实现两个数据库之间数据交互操作(二)

    一 新的可视化工具 因为前文所提到的,看不到外部服务器和外部表的问题,我更换了可视化工具. 好用的新工具PostgreSQL Maestro! 当然如此好用的工具不是免费的,如果想免费使用还请自己去找 ...

  7. Unity3d 与 Objective-C 数据交互,持续更新中

    Unity 3D是用于3D游戏编程的语言,它是一个用C\C++编写的强大的库.而在游戏中经常要接入用OC编写的SDK,这就涉及到了Unity3d 和 OC之间的数据交互.XCode是完成兼容C语言的. ...

  8. Android进阶之Fragment与Activity之间的数据交互

    1 为什么 因为Fragment和Activity一样是具有生命周期,不是一般的bean通过构造函数传值,会造成异常. 2 Activity把值传递给Fragment 2.1 第一种方式,也是最常用的 ...

  9. python的进程间的数据交互

    #先来看下如何实现多进程 # multiprocessing 这个是python的多进程的模块,我们会用到这个模块的很多方法 from multiprocessing import Process i ...

随机推荐

  1. 一些常用css技巧的为什么(二)我所理解的line-height

    要用到的基本术语和概念: 替换元素:用作为其他内容占位符的一个元素,或说替换元素内容的部分并非由文档内容直接表示.比如img元素它由文档本身之外的一个图像来替换,比如input元素要由一个单选按钮,复 ...

  2. Angular2中的metadata(元数据)

    @Attrubute() 从host element 中获得普通(不是@Input)属性对应的值 适用于组件嵌套或指令, 从父组件向子组件传递数据 app.component.ts import {C ...

  3. 《锋利的jQuery》心得笔记--Two Sections

    第三章 1.    DOM操作(节点) 1)         查找节点可以查找元素节点和属性节点 2)         创建节点: (1)       创建元素节点 var addLi = $(“&l ...

  4. 安装Java EE失败,解决方案

    笔者安装Java EE(版本是java_ee_sdk-7-jdk7-windows-x64-ml.exe)时,遇到错误提示提示"Could not find the required ver ...

  5. 《Linux系统free命令的使用》学习笔记

    free命令用于显示当前系统的内存空闲和使用情况,其中包括物理内存,交换分区内存,内核缓冲区内存以及高速缓存,free的参数报错一下: -b ——字节的方式显示内存使用情况 [root@redhat ...

  6. FastDFS4 + Ubuntu12安装及部署

    1. 安装libevent 如果需要使用http进行下载,需要安装这个组件. 2. 安装fastdfs 3. 配置fastdfs 4. 安装nginx 问题4.1:安装nginx启动后访问原先资源UR ...

  7. js 如何获取文本框中光标索引位置

    function getTxt1CursorPosition(){ var oTxt1 = document.getElementById("txt1"); var cursurP ...

  8. IOS_问题: Xcode8 安装KSImageName插件, 编代码就崩了

    Xcode 8之后, KSImageName插件就不能用了,如果安装了,就会导致一写英文代码Xcode 就崩了. 解决方法: 把这个插件删除,重启了一下xcode就可以了, 如果重启没用, 可以尝试下 ...

  9. jQuery基础选择器

    attr()方法的功能是设置或获取元素的某项属性值. attr("disabled", "true”)表示使该功能不可用. #id 选择器 $("#my_id& ...

  10. js阻止冒泡事件及默认操作

    1. 事件目标 现在,事件处理程序中的变量event保存着事件对象.而event.target属性保存着发生事件的目标元素.这个属性是DOM API中规定的,但是没有被所有浏览器实现 .jQuery对 ...