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构建一个高效词汇表

《基于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)运行效果扩展方向常见问题结

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

maven中的maven-antrun-plugin插件示例详解

《maven中的maven-antrun-plugin插件示例详解》maven-antrun-plugin是Maven生态中一个强大的工具,尤其适合需要复用Ant脚本或实现复杂构建逻辑的场景... 目录1. 核心功能2. 典型使用场景3. 配置示例4. 关键配置项5. 优缺点分析6. 最佳实践7. 常见问题

一文教你Java如何快速构建项目骨架

《一文教你Java如何快速构建项目骨架》在Java项目开发过程中,构建项目骨架是一项繁琐但又基础重要的工作,Java领域有许多代码生成工具可以帮助我们快速完成这一任务,下面就跟随小编一起来了解下... 目录一、代码生成工具概述常用 Java 代码生成工具简介代码生成工具的优势二、使用 MyBATis Gen

Python使用Reflex构建现代Web应用的完全指南

《Python使用Reflex构建现代Web应用的完全指南》这篇文章为大家深入介绍了Reflex框架的设计理念,技术特性,项目结构,核心API,实际开发流程以及与其他框架的对比和部署建议,感兴趣的小伙... 目录什么是 ReFlex?为什么选择 Reflex?安装与环境配置构建你的第一个应用核心概念解析组件

MyBatis分页插件PageHelper深度解析与实践指南

《MyBatis分页插件PageHelper深度解析与实践指南》在数据库操作中,分页查询是最常见的需求之一,传统的分页方式通常有两种内存分页和SQL分页,MyBatis作为优秀的ORM框架,本身并未提... 目录1. 为什么需要分页插件?2. PageHelper简介3. PageHelper集成与配置3.

Maven 插件配置分层架构深度解析

《Maven插件配置分层架构深度解析》:本文主要介绍Maven插件配置分层架构深度解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Maven 插件配置分层架构深度解析引言:当构建逻辑遇上复杂配置第一章 Maven插件配置的三重境界1.1 插件配置的拓扑