# com.gameframex.unity.getchannel **Repository Path**: gameframex/com.gameframex.unity.getchannel ## Basic Information - **Project Name**: com.gameframex.unity.getchannel - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-23 - **Last Updated**: 2026-04-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
![GameFrameX Logo](https://download.alianblank.com/gameframex/gameframex_logo_320.png) # Unity 多平台渠道号获取 [![Version](https://img.shields.io/badge/version-1.3.0-blue.svg)](https://github.com/gameframex/com.gameframex.unity.getchannel) [![Unity](https://img.shields.io/badge/Unity-2017.1+-green.svg)](https://unity3d.com/get-unity/download) [![License](https://img.shields.io/badge/license-MIT+Apache%202.0-orange.svg)](LICENSE.md) [![Documentation](https://img.shields.io/badge/docs-gameframex.doc.alianblank.com-brightgreen.svg)](https://gameframex.doc.alianblank.com) **独立游戏前后端一体化解决方案 · 独立游戏开发者的圆梦大使** [📖 文档](https://gameframex.doc.alianblank.com) • [🚀 快速开始](#安装) • [💬 QQ群: 467608841](https://qm.qq.com/cgi-bin/qm/qr?k=sYFd1nv6m2KZIWFLorZ5pBR0AE5ZhbuL&jump_from=webapi&authKey=oCu+uoL3n35fT5SEt7iLgGtROPxh31n/rHUxRlp0w1f+j38W4tKBuWyRH3KEdwHN) --- 🌐 **语言**: [English](./README.md) | [**简体中文**](./README.zh-CN.md) | [繁體中文](./README.zh-TW.md) | [日本語](./README.ja.md) | [한국어](./README.ko.md) ---
本插件用于在 Unity 项目中获取多平台的分发渠道号(支持 iOS、tvOS、visionOS、Android、Editor、PC、WebGL、UWP 和主机平台)。它是 `https://github.com/GameFrameX/GameFrameX` 项目的一个子模块。 ## 主要功能 - **多平台支持**:iOS、tvOS、visionOS、Android、Editor、PC(Windows/Mac/Linux)、WebGL、UWP、PS4、PS5、Xbox One、Nintendo Switch。 - 提供简单的 API 来获取预设的渠道信息。 - iOS 平台在构建时自动在 `Info.plist` 中添加默认渠道号(如果未设置)。 ## 安装 您可以通过以下三种方式将此插件添加到您的 Unity 项目中: 1. **通过 `manifest.json` 添加依赖:** 在项目 `Packages` 目录下的 `manifest.json` 文件的 `dependencies` 节点中添加如下内容: ```json { "dependencies": { "com.gameframex.unity.getchannel": "https://github.com/gameframex/com.gameframex.unity.getchannel.git", // ... 其他依赖 } } ``` 2. **通过 Unity Package Manager 使用 Git URL:** 在 Unity 编辑器中,打开 `Window -> Package Manager`。 点击左上角的 `+` 号按钮,选择 `Add package from git URL...`。 输入以下 URL 并点击 `Add`: ``` https://github.com/gameframex/com.gameframex.unity.getchannel.git ``` 3. **直接下载或克隆仓库:** 将此仓库下载或克隆到您 Unity 项目的 `Packages` 目录下。Unity 会自动识别并加载该插件。 ## 使用方法 ### 1. 获取渠道号 在您的 C# 脚本中,使用 `BlankGetChannel.GetChannelName(string key)` 方法来获取渠道号。参数 `key` 是您在对应平台设置渠道号时使用的键名。 **示例代码:** ```csharp using UnityEngine; public class MyGameScript : MonoBehaviour { void Start() { // 获取默认渠道号(键名为 "channel") string channel = BlankGetChannel.GetChannelName(); Debug.Log("当前渠道号: " + channel); // 获取指定键的渠道号 string customChannel = BlankGetChannel.GetChannelName("channelName"); Debug.Log("自定义渠道号: " + customChannel); // 获取渠道号,并指定默认值 string subChannel = BlankGetChannel.GetChannelName("sub_channel", "unknown"); Debug.Log("子渠道号: " + subChannel); } } ``` ### 2. iOS / tvOS / visionOS 平台设置 对于 iOS、tvOS 和 visionOS 平台,插件包含一个构建后处理器 (`PostProcessBuildHandler.cs`)。如果在构建时项目的 `Info.plist` 文件中: - **没有** 名为 `channel` 的键,该脚本会自动添加一个键为 `channel`,值为 `default` 的条目。 - **已经存在** 名为 `channel` 的键,则不会进行任何修改。 您可以在 Xcode 项目的 `Info.plist` 文件中修改 `channel` 的值,或者在调用 `BlankGetChannel.GetChannelName()` 时使用您自定义的键名(确保该键名存在于 `Info.plist` 中)。 **Info.plist 配置示例:** ```xml channel ios_cn_taptap sub_channel beta ``` ### 3. Android 平台设置 对于 Android 平台,您需要在 `AndroidManifest.xml` 文件中定义渠道信息。通常,这是通过在 `` 标签内添加 `` 标签来完成的。 例如,如果您想使用键名 `channel` 和值为 `android_cn_taptap`: ```xml ... ``` 然后,您可以在 C# 代码中通过 `BlankGetChannel.GetChannelName("channel")` 来获取这个值。 ### 4. Editor / PC / WebGL / UWP / 主机平台设置 对于 Editor、PC(Windows/Mac/Linux)、WebGL、UWP、PS4、PS5、Xbox One、Nintendo Switch 等平台,您需要在 Unity 项目的 `Resources` 文件夹下创建一个名为 `application_config.txt` 的文本文件。 **application_config.txt 文件格式示例:** ``` channel=editor_cn_test sub_channel=beta other_key=other_value ``` 每行格式为:`键名=值` 插件会自动读取该文件中的键值对,并缓存起来供后续使用。 ## 注意事项 - 确保您在调用 `BlankGetChannel.GetChannelName(string key)` 时使用的 `key` 与您在对应平台的配置文件中设置的键名一致: - **iOS / tvOS / visionOS**:`Info.plist` 文件 - **Android**:`AndroidManifest.xml` 文件中的 `` 标签 - **Editor / PC / WebGL / UWP / 主机平台**:`Resources/application_config.txt` 文件 - 插件包含 `link.xml` 文件以防止代码被 Unity 的代码裁剪功能移除。 - `GetChannelName()` 方法会缓存渠道信息,避免重复读取配置文件,提高性能。