UNITY 手游(安卓)如何使用C/C++代码
生活随笔
收集整理的這篇文章主要介紹了
UNITY 手游(安卓)如何使用C/C++代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解決方案:將C/C++代碼編譯成so供C#代碼調用。
SO生成工具:android studio,簡稱AS
一,so 生成方法:
1,菜單:File->New->New Project-> Native C++
2,編寫C++導出函數
3,菜單:Build->Select Build Variants,選擇構建類型 Debug或Release
4, 菜單:Build->Make Project,等待構建完成,打開Project視圖,cmake下可以找到生成的各種 so
二,Unity中使用So
1,將生成的SO文件放入到UNITY的Plugins文件夾中,然后設置如下(每個so文件對應設置,arm64-v8a設置為ARM64,armeabi-v7a設置為ARMV7,X86設置為X86)
2,編寫C#,調用SO
using System; using System.Runtime.InteropServices; using UnityEngine; using UnityEngine.UI;public class testdll : MonoBehaviour {[DllImport("libnative-lib", CharSet = CharSet.Ansi)]public static extern int ABAdd(int a, int b);void Start(){var goText = GameObject.Find("infotext").GetComponent<Text>();goText.text = "準備調用\n";int ret = -1;try{ret = ABAdd(3, 4);}catch (Exception e){goText.text += $"DLL調用出錯, {e}\n";}if(ret > 0){goText.text += $"調用完成, ret:{ret}\n";}} }三,打包為APK,安裝到手機上測試。
因為SO文件只能在安卓上使用,所以在編輯器下運行會報 System.DllNotFoundException異常。
同理,DLL文件在編輯器下可以被調用,在安卓上會報異常。
總結
以上是生活随笔為你收集整理的UNITY 手游(安卓)如何使用C/C++代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于C#内存释放的BUG?
- 下一篇: s3c2440移植MQTT