unity&ios.jpeg
最近由于項(xiàng)目需求庄吼,終于啃下了Unity里面比較難啃的一部分:混編馅袁。
之前文件也有斷斷續(xù)續(xù)的介紹過(guò)域慷,這里我做一個(gè)總結(jié),把最常用的汗销,最容易踩的坑都列出來(lái)了犹褒,希望對(duì)讀者有所幫助。
先來(lái)最簡(jiǎn)單的互相調(diào)用:
Unity調(diào)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 關(guān)鍵字是必須的弛针,我的建議是建立一個(gè)Method類叠骑,專門管理所有調(diào)用IOS方法的類。
避坑:注意傳入?yún)?shù)削茁,建議都轉(zhuǎn)為string宙枷,到ios端掉房,對(duì)應(yīng)的是char類型,注意轉(zhuǎn)化慰丛。
IOS調(diào)Unity
UnitySendMessage("IOSCube","JudgeNotifyCallBack","-1");
- IOSCube 是在Unity場(chǎng)景中簡(jiǎn)歷的一個(gè)GameObject卓囚,名字自定義。
- JudgeNotifyCallBack 是該物體腳本的方法名诅病。
- -1 是從ios端返回的參數(shù)哪亿,需要傳入NSString類型,自行轉(zhuǎn)換睬隶。
在xcode中如何寫oc++代碼
-
網(wǎng)上很多文字說(shuō)法是自己簡(jiǎn)歷一個(gè).mm文件锣夹,或者自行建立.m和.h的oc文件,親測(cè)可行苏潜,但是我有更好的方案银萍,就是用xcode項(xiàng)目中自有的文件來(lái)寫oc++代碼和oc的代碼。
code.png
下一篇繼續(xù)恤左。