Unity  两种方式 一般都是组合使用

1.[DllImport("__Internal")]  C#调用oc
2.UnitySendMessage        oc调用C#
 
 1 C#调用oc 在C#脚本中
using UnityEngine;
using System.Collections;
using System.Runtime.InteropServices;//引入

public class NewBehaviourScript : MonoBehaviour {
    [DllImport("__Internal")] 
    private static extern void CallOC();   //该方法为oc 中mm文件方法名称
    // Use this for initialization
    void Start () {
        CallOC ();                                     //调用
    }
    
    // Update is called once per frame
    void Update () {
    
    }
}

 
在MM文件中

#import

// 函数实现

#ifdef __cplusplus

extern "C" {

#endif

void CallOC()

{

NSLog(@"调用到了OC");

}

#ifdef __cplusplus

}

#endif

 
 
2 oc调用unity中代码  unity 帮我封装好的
UnitySendMessage 在java通知unity 同样可以使用 
首先在MM文件中
//这段就是加了一个按钮 触发一个方法 

UIButton *but=[UIButton buttonWithType:UIButtonTypeRoundedRect];

[but setImage:[UIImage imageNamed:@"button1.png"] forState:UIControlStateNormal];

[but setImage:[UIImage imageNamed:@"button2.png"] forState:UIControlStateHighlighted];

but.frame=CGRectMake(20, 20, 50, 60);

[self.view addSubview:but];

[but addTarget:self action:@selector(buttonCall) forControlEvents:UIControlEventEditingDidEnd];

//触发方法

-(void)buttonCall{

UnitySendMessage("Cube", "buttonCall", ""); //第一个参数 同时模型名称 2 该模型挂的脚本方法名称  3参数

}

 
 
在C#中  该脚本 挂在一个Cube上
 
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
    void buttonCall () {
        Debug.Log("OC buttonCall")
    }

}

Unity C#和OC互相调用的更多相关文章

  1. 在OC中调用Swift类中定义delegate出现:Property 'delegate' not found on object of type ...

    找了许久没找到答案, 在下面的链接中, 我解决了这个问题: http://stackoverflow.com/questions/26366082/cannot-access-property-of- ...

  2. iOS 关于js与OC相互调用的那些事

    最近项目上使用js调用OC,OC再次调用JS,再次在JS页面上面回显数据. 项目中使用的是WKWebview,加载网路的URL,其实就是使用WK加载出来的H5网页,在项目中用的是H5网页有个识别按钮, ...

  3. iOS js oc相互调用JavaScriptCore(一)

    原址:http://blog.csdn.net/lwjok2007/article/details/47058101 1.普通调用 从iOS7开始 苹果公布了JavaScriptCore.framew ...

  4. iOS下JS与OC互相调用(六)--WKWebView + WebViewJavascriptBridge

    上一篇文章介绍了UIWebView 如何通过WebViewJavascriptBridge 来实现JS 与OC 的互相调用,这一篇来介绍一下WKWebView 又是如何通过WebViewJavascr ...

  5. iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge

    WebViewJavascriptBridge是一个有点年代的JS与OC交互的库,使用该库的著名应用还挺多的,目前这个库有7000+star.我去翻看了它的第一版本已经是4年前了,在版本V4.1.4以 ...

  6. iOS下JS与OC互相调用(四)--JavaScriptCore

    前面讲完拦截URL的方式实现JS与OC互相调用,终于到JavaScriptCore了.它是从iOS7开始加入的,用 Objective-C 把 WebKit 的 JavaScript 引擎封装了一下, ...

  7. iOS下JS与OC互相调用(二)--WKWebView 拦截URL

    在上篇文章中讲述了使用UIWebView拦截URL的方式来处理JS与OC交互. 由于UIWebView比较耗内存,性能上不太好,而苹果在iOS 8中推出了WKWebView. 同样的用WKWebVie ...

  8. iOS下JS与OC互相调用(一)--UIWebView 拦截URL

    最近准备把之前用UIWebView实现的JS与原生相互调用功能,用WKWebView来替换.顺便搜索整理了一下JS 与OC 交互的方式,非常之多啊.目前我已知的JS 与 OC 交互的处理方式: * 1 ...

  9. iOS下JS与原生OC互相调用(总结)

    这是去年总结的一篇文章,也一并先放到这个目录下好了. iOS开发免不了要与UIWebView打交道,然后就要涉及到JS与原生OC交互,今天总结一下JS与原生OC交互的两种方式. JS调用原生OC篇 方 ...

随机推荐

  1. JAVA String作业——动手动脑以及课后实验性问题

    一:如何解释这样的输出结果?从中你能总结出什么?1.源码 //mao2015.10.20 //==的两个分辨 //对原始数据而言 //对引用类型变量 public class StringPool { ...

  2. Or

    1.  数据库表空间和数据文件 2.关于数据库端口的解析 SQLSever  1433 MySql     3306 Oracle     1521 3.关于listener.ora位置 修改该界面上 ...

  3. IO流--流转换

    import java.io.*; //键盘读入 字节流转换成字符流操作 提高效率 public class io { public static void main(String[] args) t ...

  4. linux如何修改主机名

    一:#hostname hn1 二:修改/etc/sysconfig/network中的 HOSTNAME=hn1三:修改/etc/hosts文件  127.0.0.1 hn1

  5. SVMtoy

    SVMtoy [label_matrix, instance_matrix] = libsvmread('ex8b.txt'); options = ''; % contour_level = [-1 ...

  6. uva 1220

    1220 - Party at Hali-Bula Time limit: 3.000 seconds Dear Contestant, I'm going to have a party at my ...

  7. Java--常用类summary(二)

    /* 1:StringBuffer(掌握) (1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了 一个字符串缓冲区类.StringBuffer供 ...

  8. UESTC 2016 Summer Training #6 Div.2

    我好菜啊.. UVALive 6434 给出 n 个数,分成m组,每组的价值为最大值减去最小值,每组至少有1个,如果这一组只有一个数的话,价值为0 问 最小的价值是多少 dp[i][j] 表示将 前 ...

  9. urlrewrite伪静态 及多参数传递-附正则表达式语法 [轉]

    首先 加载 urlrewrite包 配置web.xml [list] [*] <error-page> [*]             <error-code>404</ ...

  10. Spring mvc中使用request和response

    @ResponseBody @RequestMapping(value="/ip", method=RequestMethod.GET) public String getIP(H ...