Package Module Library 的定义

本文介绍了Perl中如何使用package声明命名空间,使变量和子程序组织得更为清晰。通过包名加上双冒号的方式可以方便地引用其他包内的变量。

package NAMESPACE

Declares the compilation unit as being in the given namespace. You can refer to variables and filehandles in other packages by prefixing the identifier with the package name and a double colon: $Package::Variable

package声明了一个命名空间(变量和子程序), 你可以通过包名加双冒号加变量名的方式引用其他包的变量.

  

新建 Android Library 时的 `package name` **并不强制要求与 Unity 工程的包名一致**,但为了在 Unity 中通过 JNI 调用时更加方便和统一管理,建议保持一致或遵循一定的命名规范。 --- ## ✅ 原理解释 Android 中的类是通过完整的类名(`package.name.ClassName`)来定位的。Unity 使用 `AndroidJavaClass` 和 `AndroidJavaObject` 来调用 Java/Kotlin 类,因此: - 只要你知道 Android Library 中类的完整路径(包括 package),你就可以调用它。 - 所以,**不需要 package name 完全一致**,只要你在 Unity 的 C# 代码中正确引用目标类的完整类名即可。 --- ## ✅ 示例说明 ### 🧩 场景一:Android Library 包名为 `com.example.androidplugin` #### Android Library定义一个类: ```kotlin // Android Library Module: MyAndroidLib package com.example.androidplugin class AndroidPlugin { fun greet(): String { return "Hello from Android!" } } ``` #### Unity 中调用方式: ```csharp using UnityEngine; public class PluginCaller : MonoBehaviour { void Start() { using (AndroidJavaObject plugin = new AndroidJavaObject("com.example.androidplugin.AndroidPlugin")) { string result = plugin.Call<string>("greet"); Debug.Log(result); } } } ``` > 即使 Unity 工程的包名是 `com.unity.mygame`,也可以正常调用。 --- ## ✅ 是否推荐一致? | 情况 | 是否推荐 | |------|----------| | 插件只供一个 Unity 项目使用 | ✅ 推荐保持一致 | | 多个项目复用插件 | ❌ 不必一致,保持清晰命名即可 | | 避免类名冲突、便于维护 | ✅ 推荐使用统一命名空间 | 例如: - Unity 包名:`com.mycompany.mygame` - Android Library 包名:`com.mycompany.mygame.androidplugin` 这样可以避免不同插件之间的命名冲突,并且结构清晰。 --- ## ✅ 总结 | 问题 | 答案 | |------|------| | 新建 Android Librarypackage name 必须跟 Unity 一致吗? | ❌ 不需要 | | Unity 如何调用 Android Library 中的类? | ✅ 通过完整类名调用 | | 是否推荐一致? | ✅ 推荐,有助于统一管理和避免命名冲突 | --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值