• Unity C#和OC互相调用


     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")
        }

    }
  • 相关阅读:
    JS中prototype属性解释及常用方法
    HTML5 组件Canvas实现图像灰度化
    洛谷.5284.[十二省联考2019]字符串问题(后缀自动机 拓扑 DP)
    洛谷.5290.[十二省联考2019]春节十二响(贪心)
    洛谷.5283.[十二省联考2019]异或粽子(可持久化Trie 堆)
    SDOI2019 省选前模板整理
    完美理论(最大权闭合子图)
    BZOJ.3566.[SHOI2014]概率充电器(概率DP 树形DP)
    BZOJ.2616.SPOJ PERIODNI(笛卡尔树 树形DP)
    4.2模拟赛 wormhole(期望DP Dijkstra)
  • 原文地址:https://www.cnblogs.com/sytfyf/p/5150786.html
Copyright © 2020-2023  润新知