贝博恩创新科技网

Unity Everyplay教程怎么用?

Unity Everyplay 教程:从零开始集成游戏录制与分享功能

Everyplay 是一个强大的移动端游戏 SDK,它允许玩家在游戏中轻松录制精彩瞬间(Replay)、添加语音解说、并一键分享到社交媒体,对于开发者来说,集成 Everyplay 可以极大地提升游戏的社交传播性和用户粘性。

Unity Everyplay教程怎么用?-图1
(图片来源网络,侵删)

本教程将分为以下几个部分:

  1. 准备工作
  2. 集成 Everyplay SDK
  3. 录制与回放核心功能
  4. 高级功能:语音解说与滤镜
  5. 分享功能
  6. 最佳实践与注意事项

准备工作

在开始之前,请确保你已经完成了以下准备工作:

  • Unity 版本:Everyplay 支持 Unity 5.4 及以上版本,本教程以较新版本为例。
  • 目标平台:Everyplay 主要为 iOSAndroid 平台设计,请确保你的 Unity 项目已经正确配置了相应的构建目标。
  • Everyplay 账号
    • 访问 Everyplay 官网 并注册一个开发者账号。
    • 登录后,创建一个新的应用,你需要提供应用的 Bundle ID (iOS) 和 Package Name (Android),你可以在 Unity 的 Player Settings 中找到这些信息。
    • Everyplay 会为你的应用生成一个 API KeySecret Key,请务必妥善保管这两个密钥。
  • 必要的依赖
    • iOS: 你需要一个有效的 Apple Developer 账号来构建和发布到 App Store。
    • Android: 你需要一个有效的 Google Play Developer 账号。
    • 视频回放依赖:Everyplay 的视频回放功能依赖于第三方解码器,对于 iOS,通常不需要额外操作,对于 Android,你需要集成 FFmpeg,Everyplay 官方提供了预编译的 .jar.so 文件,你需要将它们手动导入到 Unity 项目中。

集成 Everyplay SDK

这是最关键的一步,我们将通过 Unity 的 Package Manager 来集成 SDK。

步骤 1: 添加包依赖

  1. 在 Unity 编辑器中,打开 Window > Package Manager
  2. 点击左上角的 号,选择 Add package from git URL...
  3. 输入 Everyplay 的官方 Git 仓库地址:
    https://github.com/everyplay/unity-sdk.git
  4. 点击 "Add",Unity 会自动下载并导入 SDK。

步骤 2: 配置 API Key

  1. 在 Unity 编辑器中,创建一个空的 C# 脚本,EveryplayInitializer.cs

    Unity Everyplay教程怎么用?-图2
    (图片来源网络,侵删)
  2. 将以下代码粘贴到脚本中:

    using UnityEngine;
    public class EveryplayInitializer : MonoBehaviour
    {
        // 在 Inspector 中填入你在 Everyplay 后台获取的 API Key
        public string everyplayApiKey = "YOUR_EVERYPLAY_API_KEY";
        void Start()
        {
            // 初始化 Everyplay
            Everyplay.Initialize(everyplayApiKey);
            // 可选:设置日志级别,方便调试
            Everyplay.SetLogLevel(Everyplay.LogLevel.Debug);
        }
    }
  3. 在你的主场景(比如第一个加载的场景)中,创建一个空的 GameObject。

  4. EveryplayInitializer.cs 脚本拖拽到这个 GameObject 上。

  5. 在 Inspector 窗口中,找到 Everyplay Initializer 组件,将你从 Everyplay 后台复制的 API Key 粘贴到 Everyplay API Key 字段中。

    Unity Everyplay教程怎么用?-图3
    (图片来源网络,侵删)

步骤 3: 处理 Android 依赖 (重要!)

如果你要发布到 Android 平台,必须手动集成 FFmpeg。

  1. 下载 FFmpeg 依赖包

  2. 导入到 Unity 项目

    • 在 Unity 的 Assets 文件夹下,创建一个名为 Plugins/Android 的文件夹(如果不存在)。
    • 将下载的 android.jar 文件放入 Assets/Plugins/Android 文件夹中。
    • 将包含 armeabi-v7a 等原生库的文件夹(通常命名为 libs)也放入 Assets/Plugins/Android 文件夹中,并确保其内部的 .so 文件路径正确。

录制与回放核心功能

让我们来实现最核心的录制和回放功能。

步骤 1: 开始录制

你可以在游戏的关键时刻(如游戏开始、玩家死亡、达成成就时)开始录制,推荐在游戏开始时启动。

using UnityEngine;
using Everyplay;
public class GameManager : MonoBehaviour
{
    void Start()
    {
        // 开始录制
        // 参数:录制时长(秒),-1 表示无限制,直到手动停止
        Everyplay.StartRecording(-1); 
    }
    // 在玩家死亡时停止录制
    public void OnPlayerDeath()
    {
        // 停止录制
        Everyplay.StopRecording();
    }
}

步骤 2: 停止录制

通常在特定事件(如关卡结束、玩家失败)时停止录制。

// 在需要停止录制的时刻调用
Everyplay.StopRecording();

步骤 3: 保存并编辑回放

停止录制后,回放会自动保存在本地,你需要将其上传到 Everyplay 服务器,并生成一个可分享的 URL。

// 1. 获取最后一次录制的回放对象
Everyplay.Replay lastReplay = Everyplay.GetLastReplay();
if (lastReplay != null)
{
    // 2. 添加一个元数据标签,方便管理
    lastReplay.AddMetadata("level", "Level 1");
    lastReplay.AddMetadata("score", "1000");
    // 3. 上传回放
    // 参数:是否在后台上传,回调函数
    lastReplay.UploadInBackground(true, OnReplayUploaded);
}
else
{
    Debug.Log("没有找到可上传的回放。");
}
// 回调函数,处理上传结果
private void OnReplayUploaded(Everyplay.Replay replay, Everyplay.ReplayUploadStatus status)
{
    if (status == Everyplay.ReplayUploadStatus.Success)
    {
        Debug.Log("回放上传成功!URL: " + replay.Url);
        // 在这里可以显示一个分享按钮
    }
    else
    {
        Debug.LogError("回放上传失败: " + status);
    }
}

步骤 4: 播放回放

你可以提供一个界面让玩家观看自己的回放。

// 播放最后一次录制的回放
Everyplay.PlayLastReplay();
// 或者播放特定的回放
// Everyplay.PlayReplay(someReplayObject);

高级功能:语音解说与滤镜

Everyplay 允许玩家在录制时添加语音解说,并为视频添加滤镜效果。

语音解说

  1. 开始录音

    // 开始录音,可以指定音质
    Everyplay.StartRecordingVoice(Everyplay.VoiceRecordingQuality.High);
  2. 停止录音

    Everyplay.StopRecordingVoice();
  3. 检查录音状态

    if (Everyplay.IsRecordingVoice())
    {
        Debug.Log("正在录音中...");
    }

滤镜

在录制或编辑时,可以应用滤镜。

// 获取可用的滤镜列表
Everyplay.Filter[] availableFilters = Everyplay.GetAvailableFilters();
// 应用一个特定的滤镜(第一个滤镜)
if (availableFilters.Length > 0)
{
    Everyplay.ApplyFilter(availableFilters[0]);
}
// 移除所有滤镜
Everyplay.RemoveFilter();

分享功能

一旦回放上传成功,就可以生成分享链接。

Everyplay.Replay replayToShare = Everyplay.GetLastReplay();
if (replayToShare != null && replayToShare.IsUploaded)
{
    // 创建分享意图
    EveryplayShareIntent shareIntent = new EveryplayShareIntent();
    shareIntent.AddReplay(replayToShare);
    // 可选:添加自定义文本
    shareIntent.SetText("看看我刚在游戏中录制的精彩瞬间!");
    // 显示原生分享对话框
    Everyplay.ShowShareDialog(shareIntent);
}

最佳实践与注意事项

  1. 用户授权

    • 在 iOS 10+ 和 Android 6.0+ 上,应用必须明确请求麦克风和相机的使用权限。
    • 强烈建议使用 Unity 的 Permission API (在 Unity.Android.Permissions 命名空间下) 或第三方插件(如 Native Plugins)来处理权限请求。
    • 在请求麦克风权限前,最好先检查一下,避免在不必要的时候打扰用户。
      // 示例:检查麦克风权限
      if (!Everyplay.HasMicrophonePermission())
      {
      // 请求权限
      Everyplay.RequestMicrophonePermission();
      }
  2. 性能影响

    • 录制和视频回放是资源密集型操作,尤其是在低端设备上。
    • 建议:在录制时,适当降低游戏的图形质量(分辨率、纹理等),以减少性能开销。
    • 不要在后台录制:除非你的游戏设计如此,否则通常只在游戏前台运行时进行录制。
  3. UI 集成

    • 不要直接使用 Everyplay 提供的预制 UI(它通常很旧且样式固定)。
    • 最佳实践是隐藏其默认 UI,然后根据你的游戏美术风格,创建自己的按钮(如“开始录制”、“停止录制”、“查看回放”、“分享”)。
    • 通过调用 Everyplay.ShowHideUI(true/false) 来控制其默认 UI 的显示与隐藏。
  4. 测试

    • 务必在真机上进行测试,模拟器上的表现和真实设备可能有很大差异。
    • 分别在 iOS 和 Android 设备上测试录制、上传、回放和分享的完整流程。
    • 测试在不同网络环境(Wi-Fi, 4G)下的表现。
  5. 错误处理

    在调用 Everyplay 的 API 时,始终检查返回值或使用回调函数来处理可能出现的错误(如网络错误、权限被拒绝等),并给用户友好的提示。

通过以上步骤,你就可以成功地将 Everyplay 集成到你的 Unity 游戏中,核心流程是:初始化 -> 开始录制 -> 停止录制 -> 上传回放 -> 播放/分享

充分利用 Everyplay 的功能,可以为你的游戏增加一个非常棒的社交分享点,鼓励玩家创造和分享内容,从而实现口碑传播,祝你集成顺利!

分享:
扫描分享到社交APP
上一篇
下一篇