unity游戏截图分享到ios多个社交平台

unity game screenshot share in multiple social platform in ios

我正在用 Unity 构建我的第一款游戏,我已经快完成了。我想在 Facebook、Twitter、电子邮件等多个社交平台上分享我的游戏场景截图。但我无法做到这一点。我不想使用任何插件。

我想这样做

任何帮助都会有所帮助。

既然你在评论中提到你可以选择插件选项,这是我正在使用的插件:https://github.com/ChrisMaire/unity-native-sharing

一点注意事项是,如果您从 the.unitypackage 文件导入资产,请务必将 Assets/Plugins/iOS/ 中的 post-导入文件替换为 master 的最新版本。最新提交修复了 iPad 上的崩溃,但尚未包含在 .unitypackage 中。

很简单。在您的 C# 代码中,为您的本机代码添加 DllImport 并创建一个接收图像路径和文本消息的简单函数。

然后在你的 Assets/Plugins/iOS/ 添加一个 class,例如:"ShareHandler.mm"

在那个 class 中,有一个可以调用的函数,它接受路径和文本。像这样将路径转换为图像:

NSString *imagePath = [NSString stringWithUTF8String:path];
UIImage *image = [UIImage imageWithContentsOfFile:imagePath];

创建你想要 post 的项目的 NSArray,这里:

NSArray *postItems = @[image, message];

然后添加:

 UIActivityViewController *activityVc = [[UIActivityViewController alloc]initWithActivityItems:postItems applicationActivities:nil];

if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad && [activityVc respondsToSelector:@selector(popoverPresentationController)] ) {

    UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activityVc];

    [popup presentPopoverFromRect:
        CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/4, 0, 0)
        inView:[UIApplication sharedApplication].keyWindow.rootViewController.view
        permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
} else {
    [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:activityVc animated:YES completion:nil];
}

之后,从 class:

的 extern "C" 部分调用这个函数
extern "C"{
void shareImageWithTextOnIOS(const char * path, const char * message){
    ImageShareForiOS *vc = [[ImageShareForiOS alloc] init];
    [vc shareMethod:path Message:message];
}

这对我来说效果很好。希望这有帮助。

请阅读 Unity iOS 插件文档,了解如何创建 Unity iOS 插件。非常有用! https://docs.unity3d.com/Manual/PluginsForIOS.html