Unity 用户手册Advanced构建 iOS 插件

2024-06-16 00:58

本文主要是介绍Unity 用户手册Advanced构建 iOS 插件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


构建 iOS 插件
本页具体说明晰 iOS 渠道的本地代码插件。


为 iOS 创立带本地插件的使用程序
按以下办法在 C# 文件中定义外部办法: 
[DllImport ("__Internal")]
private static extern float FooPluginFunction ();
设定 iOS 编辑器的构建方针
将本地代码源文件增加至生成的 XCode 工程“类”文件夹(工程更新不会掩盖此文件夹,但必须备份本地代码)。
假如运用 C++ (.cpp) 或 Objective-C++ (.mm) 完成插件,那么有必要要确保您创立的功用运用 C linkage 办法声明,防止呈现称号重整疑问。


extern "C" {
  float FooPluginFunction ();

以 C 或 Objective-C 编写的插件无需此项操作,由于这些言语不运用称号重整。


从 C# 运用插件
iOS 本地插件只要在部署到实践设备之后才干被调用,因此,主张一切本地代码的类函数都运用一个额外的 C# 代码层包装。此代码应检查 Application.platform,而且仅在使用程序在设备上运转时调用本地类函数;使用程序在编辑器中运转时将回来虚值。检查 Bonjour 浏览器使用程序的事例。


从本地代码中调用 C# / JavaScript
Unity iOS 经过 UnitySendMessage:
UnitySendMessage("GameObjectName1", "MethodName1", "Message to send");
撑持有限的本地管理回调功用。这项功用包含三个参数:方针游戏目标 (GameObject) 的称号、调用这一目标的脚本类函数以及传递给所调用类函数的信息字符串。


已知约束:


只要契合以下命名规矩的脚本类函数才干被本地代码调用: function MethodName(message:string)
UnitySendMessage 调用为异步,而且有一帧的延时。
主动插件集成
Unity iOS 以有限的办法撑持主动插件集成。在资本 (Assets)/插件 (Plugins)/iOS 文件夹内一切扩展名为.a、.m、.mm、.c、.cpp 的文件都将主动合并到生成的 Xcode 工程。可是,合并经过将资本 (Assets)/插件 (Plugins)/iOS 中的文件符号连接至结尾目的地来完结,这能够影响部分作业流程。.h 文件不包含在 Xcode 工程树内,可是它们将呈如今方针文件夹中,从而完成 .m/.mm/.c/.cpp 文件编译。


注意:当前不撑持子文件夹。


iOS 提示
在 iOS 中保管和非保管的调用十分占用处理器。尽量防止在一帧内调用多个本地类函数。
如上所述,运用调用设备本地代码的 C# 层包装本地类函数,并在编辑器中回来虚值。
本地类函数回来的字符串值应为 UTF-8 编码,而且分配在堆上。这种字符串可在 Mono 上进行自在编组调用。
如上所述,XCode 工程的“类”文件是极好的保留本地代码的方位,由于工程更新之后,它不会被掩盖。
另一个极好的储存本地代码的方位是资本 (Assets) 文件夹或其子文件夹。只需从 XCode 工程中将引证增加至本地代码文件:右击"类 (Classes)" 子文件夹并挑选“增加 (Add)->现有文件 (Existing files)...”。
示例
Bonjour 浏览器实例
点击此处可检查运用本地代码插件的简略实例。


这一实例演示了如安在 Unity iOS 使用程序中调用 objective-C 代码。此使用程序完成了十分简略的 Bonjour 客户端。 此使用程序包含 Unity iOS 工程(Plugins/Bonjour.cs 是本地代码的 C# 接口,而 BonjourTest.js 则是完成使用程序逻辑的 JS 脚本)和应增加至内置 XCode 工程的本地代码(资本 (Assets)/ 代码 (Code))。



本Unity3d教程文章由游戏蛮牛Cocos2D教程整理推荐

这篇关于Unity 用户手册Advanced构建 iOS 插件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1065076

相关文章

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

基于Python构建一个高效词汇表

《基于Python构建一个高效词汇表》在自然语言处理(NLP)领域,构建高效的词汇表是文本预处理的关键步骤,本文将解析一个使用Python实现的n-gram词频统计工具,感兴趣的可以了解下... 目录一、项目背景与目标1.1 技术需求1.2 核心技术栈二、核心代码解析2.1 数据处理函数2.2 数据处理流程

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结