找回密码
 立即注册
查看: 394|回复: 0

Unity与IOS混合编程(一)

[复制链接]
发表于 2022-3-29 15:23 | 显示全部楼层 |阅读模式

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开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-17 04:44 , Processed in 0.089377 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表