tencent cloud

文档反馈

Unreal Engine

最后更新时间:2022-09-22 14:20:34

    本文主要介绍如何快速地将腾讯云 IM SDK(Unreal Engine)集成到您的项目中,只要按照如下步骤进行配置,就可以完成 SDK 的集成工作。

    环境要求

    建议 Unreal Engine 4.27.1 及以上版本。

    开发端 环境
    Android
  • Android Studio 4.0 及以上版本。
  • Visual Studio 2017 15.6 及以上版本。
  • 只支持真机调试。
  • iOS & macOS
  • Xcode 11.0 及以上版本。
  • OSX 系统版本要求 10.11 及以上版本 。
  • 请确保您的项目已设置有效的开发者签名。
  • Windows
  • 操作系统:Windows 7 SP1 及以上版本(基于 x86-64 的 64 位操作系统)。
  • 磁盘空间:除安装 IDE 和一些工具之外还应有至少 1.64 GB 的空间。
  • 安装 Visual Studio 2019
  • 集成 SDK

    1. 下载 SDK 及配套的 SDK 源码

    2. 把项目中的 IM SDK 文件夹拷贝到您项目中的 Source/[project_name] 目录下,其中 [project_name] 表示你项目的名称。

    3. 编辑你项目中的 [project_name].Build.cs文件。添加下面函数:

      // 加载各个平台IM底层库
      private void loadTIMSDK(ReadOnlyTargetRules Target) {
      string _TIMSDKPath = Path.GetFullPath(Path.Combine(ModuleDirectory, "TIMSDK"));
      bEnableUndefinedIdentifierWarnings = false;
      PublicIncludePaths.Add(Path.Combine(_TIMSDKPath, "include"));
      if (Target.Platform == UnrealTargetPlatform.Android) {
          PrivateDependencyModuleNames.AddRange(new string[] { "Launch" });
          AdditionalPropertiesForReceipt.Add(new ReceiptProperty("AndroidPlugin", Path.Combine(ModuleDirectory, "TIMSDK", "Android", "APL_armv7.xml")));
          
          string Architecture = "armeabi-v7a";
          // string Architecture = "arm64-v8a";
          // string Architecture = "armeabi";
          PublicAdditionalLibraries.Add(Path.Combine(ModuleDirectory,"TIMSDK", "Android", Architecture, "libImSDK.so"));
      }
      else if (Target.Platform == UnrealTargetPlatform.IOS) {
          PublicAdditionalLibraries.AddRange(
              new string[] {
                  "z","c++",
                  "z.1.1.3",
                  "sqlite3",
                  "xml2"
              }
          );
      PublicFrameworks.AddRange(new string[]{
              "Security",
              "AdSupport",
              "CoreTelephony",
              "CoreGraphics",
              "UIKit"
          });
          PublicAdditionalFrameworks.Add(new UEBuildFramework("ImSDK_CPP",_TIMSDKPath+"/ios/ImSDK_CPP.framework.zip", ""));
      }
      else if(Target.Platform == UnrealTargetPlatform.Mac) {
          PublicAdditionalLibraries.AddRange(new string[] {
              "resolv",
              "z",
              "c++",
              "bz2",
              "sqlite3",
          });
      PublicFrameworks.AddRange(
              new string[] {
                  "AppKit",
                  "Security",
                  "CFNetwork",
                  "SystemConfiguration",
              });
          PublicFrameworks.Add(Path.Combine(_TIMSDKPath, "Mac", "Release","ImSDKForMac_CPP.framework"));
      }
      else if (Target.Platform == UnrealTargetPlatform.Win64) {
          PublicAdditionalLibraries.Add(Path.Combine(_TIMSDKPath, "win64", "Release","ImSDK.lib"));
          PublicDelayLoadDLLs.Add(Path.Combine(_TIMSDKPath, "win64", "Release", "ImSDK.dll"));
          RuntimeDependencies.Add("$(BinaryOutputDir)/ImSDK.dll", Path.Combine(_TIMSDKPath, "win64", "Release", "ImSDK.dll"));
      }
      }
      
    4. [project_name].Build.cs 文件调用该函数:

    5. 到目前为止你已经集成了 IM SDK。可在你的 cpp 文件中使用 IM 的能力了。#include "V2TIMManager.h"

      // 获取sdk单例对象
      V2TIMManager* timInstance = V2TIMManager::GetInstance();
      // 获取sdk版本号
      V2TIMString timString = timInstance->GetVersion();
      // 初始化sdk
      V2TIMSDKConfig timConfig;
      timConfig.initPath = static_cast<V2TIMString>("D:\\");
      timConfig.logPath = static_cast<V2TIMString>("D:\\");
      bool isInit = timInstance->InitSDK(SDKAppID, timConfig);
      

    打包

    File -> Package Project -> Mac

    IM Unreal Engine API 文档

    更多接口介绍,请参见 API 概览

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持