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

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

时间: 2024-11-05 20:44:00

Unity3D 与 objective-c 之间数据交互。iOS SDK接口封装Unity3D接口 .-- 转载的相关文章

Vue2.0子同级组件之间数据交互

接着我们进入Demo,首先我们可以删除掉模板项目中src/components/Hello.vue,然后在App.vue中删除对于Hello子组件的注册和使用还有一些其他无关紧要的东西,此时的App.vue应为这样 一 .我们先来创建中央事件总线,在src/assets/下创建一个eventBus.js,内容如下(eventBus中我们只创建了一个新的Vue实例,以后它就承担起了组件之间通信的桥梁了,也就是中央事件总线.) 二 . 创建一个firstChild组件,引入eventBus这个事件总

5月20日重点:当请求的参数是动态的形式时,原生app与h5页面之间数据交互的方法

方案一: 1.app在打开H5页面的时候,把需要给的参数,以get的形式,放在H5的url中. 2.然后H5的js从url中获取到需要的参数,拼接到ajax请求的url中. 3.H5ajax请求,页面渲染. 方案二: 1.app方构建与H5交互的协议 2.H5写一个带参命名函数.在此方法内,填写数据获取后的操作代码. 并把函数名告知app方. 2.app方请求数据,然后以post方法,把请求到的全部数据传入已知的函数中,并调用此函数. 3.H5负责把接收到的数据,进行页面渲染. 注意:1.这个方

组件之间数据交互

有时候非父子关系的组件也需要通信.在简单的场景下,使用一个空的 Vue 实例作为中央事件总线: var bus = new Vue() // 触发组件 A 中的事件 bus.$emit('id-selected', 1) // 在组件 B 创建的钩子中监听事件 bus.$on('id-selected', function (id) { // ... })   实例代码如下: <!DOCTYPE html> <html lang="en"> <head&g

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

转自:http://blog.csdn.net/sjf0115/article/details/7387467 主要功能: 在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理.这样的数据交流就要用到回调函数onActivityResult. <1>startActivityForResult(Intent intent, int requestCode); 第

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

1 为什么 因为Fragment和Activity一样是具有生命周期,不是一般的bean通过构造函数传值,会造成异常. 2 Activity把值传递给Fragment 2.1 第一种方式,也是最常用的方式,就是使用Bundle来传递参数 (1)宿主Activity/FragmentAdapter中: Bundle bundle = new Bundle(); bundle.putString(Constant.INTENT_ID, productId); Fragment fragment =

android中的HttpURLConnection和HttpClient实现app与pc数据交互

自学android的这几天很辛苦,但是很满足,因为每当学到一点点知识点都会觉得很开心,觉得今天是特别有意义的,可能这个就是一种莫名的热爱吧. 下面来说说今天学习的HttpURLConnection和HttpClient的区别吧,其实这2种都能进行客户端和服务器的数据交互,只是HttpClient封装的更完全. 先看下案例吧 第一种HttpURLConnection访问服务器: 客服端代码: package com.example.demo01; import java.io.IOExceptio

两个GridView之间数据转移,交互,实现拖拽,网易新闻列表效果实现

两个GridView之间数据转移,交互,实现拖拽,网易新闻列表效果实现 摘要 :android 高仿频道管理网易新闻. 新闻频道增删,排序,以及一些动画的实现 可拖动的GridView 地址  :  http://www.itnose.net/detail/6035345.html

ios应用view之间数据传递的方式

对于不同的viewcontroller之间数据的共享和处理 采用代理的方式,子viewcontroller设计代理协议,并定义协议接口,父viewcontroller实现协议接口,实现子视图控制器退出时将相关数据更新到父视图中 采用ios的消息机制,父viewcontroller注册消息,子viewcontroller发送消息,触发父viewcontroller的消息处理 采用database作为数据中间的存储媒介,子viewcontroller将状态数据存入DB,父viewcontrller从

UWP开发:APP之间的数据交互(以微信为例)

目录 说明 UWP应用唤醒方式 跟微信APP交互数据 APP之间交互数据的前提 说明 我们经常看到,在手机上不需要退到桌面,APP之间就可以相互切换,并且可以传递数据.比如我在使用知乎APP的时候,需要使用新浪微博账号登录,点击“微博登录”后,系统自动唤醒新浪微博APP,并将知乎请求登录的数据传给了微博APP(微博APP界面上可以看到是知乎请求登录授权),见下图:    如上所示,依次点击“微博登录”.“确定”,手机界面自动来回切换,不需要人为干预.另外,如果我们在知乎看到一篇有意思的文章,需要