美文网首页
Unity与IOS混合编程(一)

Unity与IOS混合编程(一)

作者: Razy西南 | 来源:发表于2022-03-28 16:15 被阅读0次
    unity&ios.jpeg

    最近由于项目需求,终于啃下了Unity里面比较难啃的一部分:混编。
    之前文件也有断断续续的介绍过,这里我做一个总结,把最常用的,最容易踩的坑都列出来了,希望对读者有所帮助。

    先来最简单的互相调用:

    Unity调IOS

    using System.Runtime.InteropServices;
    using UnityEngine;
    
    public class IOSMethod : MonoBehaviour
    {
    #if UNITY_IPHONE || UNITY_IOS
       [DllImport("__Internal")]
        public static extern void OpenAppSettings();
        [DllImport("__Internal")]
        public static extern void JudgeNotifyPermission();
        [DllImport("__Internal")]
        public static extern void LoadIOS(string adid);
        [DllImport("__Internal")]
        public static extern void ShowIOS(string adid);
        
    #endif
    }
    
    
    • [DllImport("__Internal")] 和 extern 关键字是必须的,我的建议是建立一个Method类,专门管理所有调用IOS方法的类。

    避坑:注意传入参数,建议都转为string,到ios端,对应的是char类型,注意转化。

    IOS调Unity

    UnitySendMessage("IOSCube","JudgeNotifyCallBack","-1");
    
    • IOSCube 是在Unity场景中简历的一个GameObject,名字自定义。
    • JudgeNotifyCallBack 是该物体脚本的方法名。
    • -1 是从ios端返回的参数,需要传入NSString类型,自行转换。

    在xcode中如何写oc++代码

    • 网上很多文字说法是自己简历一个.mm文件,或者自行建立.m和.h的oc文件,亲测可行,但是我有更好的方案,就是用xcode项目中自有的文件来写oc++代码和oc的代码。


      code.png

    下一篇继续。

    相关文章

      网友评论

          本文标题:Unity与IOS混合编程(一)

          本文链接:https://www.haomeiwen.com/subject/acppjrtx.html