Unity 3D 简单工程的创建。与Xcode 导出到iOS 平台请看这

Unity3D 学习 创建简单的按钮、相应事件

Unity C# 代码

  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Runtime.InteropServices;
  4.  
  5. public class testFeil : MonoBehaviour {
  6.  
  7. [DllImport("__Internal")]
  8. private static extern void c_ctest();
  9.  
  10. // Use this for initialization
  11. void Start () {
  12.  
  13. }
  14.  
  15. // Update is called once per frame
  16. void Update () {
  17.  
  18. }
  19.  
  20. void OnGUI()
  21. {
  22. //开始按钮 创建了一个按钮。
  23. if(GUI.Button(new Rect(20,100,200,50),"qingyun "))
  24. {
  25. //System.Console.WriteLine("hello world");
  26. print("hello qingyun !");
  27. c_ctest();
  28. // Debug.Log("up.up");
  29. }
  30.  
  31. }
  32.  
  33. void testResult (string msg)
  34. {
  35. Debug.Log("testResult:" +msg);
  36. }
  37.  
  38. //这个是C#里的一个回调。用来接收数据是否传送成功。----这里的作用就是OC里的回调。
  39. void testBtnResult (string msg)
  40. {
  41. Debug.Log ("btnPressSuccessssssssssss:"+msg);
  42. }
  43. }

.mm 文件里的OC  与 C 接口

  1. //
  2. // MeiyuPushSdkC.m
  3. // MeiYuPushDemo
  4. //
  5. // Created by qingyun on 3/31/14.
  6. // Copyright (c) 2014 qingyun. All rights reserved.
  7. //
  8.  
  9. #import "MeiyuPushSdkC.h"
  10. #import "MeiyuPushSdk.h"
  11.  
  12. @interface MeiyuPushSdkC : NSObject<MeiyuPushSdkDelegate>
  13.  
  14. @end
  15.  
  16. @implementation MeiyuPushSdkC
  17.  
  18. - (id)init
  19. {
  20. id object = [super init];
  21.  
  22. [[MeiyuPushSdk my_initPush]setDelegate:self];
  23. //sdk.delegate = self;
  24. NSLog(@"initMeiyuPushSdkC");
  25. return object;
  26. }
  27.  
  28. -(void)cTestResult
  29. {
  30. UnitySendMessage("Main Camera", "testBtnResult", "成功啦.哇哈哈哈");
  31. }
  32.  
  33. @end
  34.  
  35. MeiyuPushSdkC *m_pushSdk = NULL;
  36.  
  37. #if defined (__cplusplus)
  38. extern "C"
  39. {
  40. #endif
  41.  
  42. void c_ctest()
  43. {
  44. if(m_pushSdk == NULL)
  45. {
  46. m_pushSdk = [[MeiyuPushSdkC alloc]init];
  47. }
  48. MeiyuPushSdk *m = [MeiyuPushSdk my_initPush];
  49.  
  50. //objc_msgSend(obj, @selector(setName:),@"balabala");
  51. [m cTest];
  52. NSLog(@"testSuccess---------");
  53. UnitySendMessage("Main Camera", "testResult", "-10862904$_^_$接口调用失败");
  54. }
  55.  
  56. #if defined (__cplusplus)
  57. }
  58. #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接口

    原地址:http://www.cnblogs.com/qingjoin/p/3638915.html Unity 3D 简单工程的创建.与Xcode 导出到iOS 平台请看这 Unity3D 学习 创 ...

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

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

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

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

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

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

  7. Android进阶2之Activity之间数据交流(onActivityResult的用法) (转载)

    转自:http://blog.csdn.net/sjf0115/article/details/7387467 主要功能: 在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activ ...

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

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

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

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

随机推荐

  1. final、finalize()、finally、static

    一.final final的三种情况: 1.变量 1)对于基本类型,final使数值恒定不变:而对于对象引用,final使引用恒定不变,即一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象, ...

  2. 【原创】Javascript-显示系统时间

    /*JS-显示系统时间*/ function showLocale(objD) { var str, colorhead, colorfoot; var yy = objD.getYear(); if ...

  3. html5---音频视频基础一

    //html5 音频和视频 :标签 a: audio,video b: source :视频容器 a:容器文件,类似于压缩了一组文件 -音频轨道 -视频轨道 -元数据:封面,标题,字幕等 -格式:.a ...

  4. Fresco使用之OOM问题记录

    最近友盟上5.0以上系统报出很多OOM异常,看下日志看到facebook的时候就知道一定是Fresco使用不当导致了OOM. java.lang.OutOfMemoryError: Failed to ...

  5. Java微信开发以及对各种云的评价

    目前一个人用Java开发一个微信的会员系统,开发已经结束,现在进入测试阶段. 有一些时间看看市面上的一些Java的微信开发视频,看了一下北风网的<微信公众平台开发Java版第一季>中的1, ...

  6. 如何在SQLite中创建自增字段

      SQLite 简单的回答:一个声明为 INTEGER PRIMARY KEY 的字段将自动增加. 这里是详细的答案: 从 SQLite 的 2.3.4 版本开始,如果你将一个表中的一个字段声明为 ...

  7. Android 蓝牙技术 实现终端间数据传输

    蓝牙技术在智能硬件方面有很多用武之地,今天我就为大家分享一下蓝牙技术在Android系统下的使用方法技巧.蓝牙是一种短距离的无线通信技术标准,蓝牙协议分为4层,即核心协议层.电缆替代协议层.电话控制协 ...

  8. ThinkPHP示例:CURD

    完整的控制器文件: class IndexAction extends Action { // 查询数据 public function index() { $Form = M("Form& ...

  9. openssl之BIO系列之9---BIO对的创建和应用

    BIO对的创建和应用 ---依据openssl doc/crypto/bio/bio_new_bio_pair.pod翻译和自己的理解写成 (作者:DragonKing Mail:wzhah@263. ...

  10. 【秀优越(xie e)】原来出题也能够这么恶心。

    通过邪恶的数据范围和数据限制居然能够把一道传统题出成题答2333. 诶毕竟内部互測,题目就不往上贴了. 特殊限制 - - - 题目作废.输出M行"Orz  PoPoQQQ" - M ...