tencent cloud

文档反馈

Unreal Engine

最后更新时间:2024-01-31 15:28:17
    本文主要介绍如何快速地将腾讯云 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);

    打包

    macOS 端
    Windows 端
    iOS 端
    Android 端
    File -> Package Project -> Mac
    File->Package Project->Windows->**Windows(64-bit)**。
    
    打包项目。File -> Package Project -> iOS
    开发调试:详见 Android 快速入门。 打包项目:详见 打包 Android 项目

    IM Unreal Engine API 文档

    更多接口介绍,请参见 API 概览
    联系我们

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

    技术支持

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

    7x24 电话支持