Unity 之 使用Mac原生好评 (macOS开发 | Unity调用macOS )

1,828 阅读1分钟

我正在参加「掘金·启航计划」

前言

本文通过Mac端原生好评示例,教你学会Unity和macOS交互。


一,xCode端处理

1.1 创建Bundle

打开xCode选项卡选择macOs --> Bundle 然后点击Next下一步

填写名称,包名等信息,然后点击Next下一步

1.2 写OC代码

在工程上右键 --> New File... 分别创建.h和.m文件:

分别命名为ReviewUnity.hReviewUnity.m

创建完成:

脚本内容如下: ReviewUnity.h

//
//  ReviewUnity.h
//  Unity-iPhone
//
//  Created by Czhenya on 2021/11/22.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface RequestReviewUnity : NSObject

@end

NS_ASSUME_NONNULL_END

ReviewUnity.m

//
//  ReviewUnity.m
//  Unity-iPhone
//
//  Created by Czhenya on 2021/11/22.
//

#import "ReviewUnity.h"
#import <StoreKit/StoreKit.h>

@implementation RequestReviewUnity

@end

#if defined (__cplusplus)
extern "C"
{
#endif
    
    void ShowReview(){
        [SKStoreReviewController requestReview];
    }
    
#if defined (__cplusplus)
}
#endif

1.3 生成.bundle库

运行xCode,完成后就生成了.bundle库,将其直接导入到Unity中即可。

进到文件加中查看:


二,Unity端处理

2.1 .bundle库导入Unity

将上面生成的.bundle,直接导入到Unity的Plugins文件加下:

2.2 写调用代码

引用命名空间using System.Runtime.InteropServices;

使用DllImport导入上面导入的.bundle,语法:[DllImport("bundle名")]

注意:这种分平台的东西,使用宏定义区分好,避免实际使用中分平台时来了不必要的麻烦。

C#调用代码:

using System.Runtime.InteropServices;
using UnityEngine;

public class PrimordialEvaluateSDK : MonoBehaviour
{
    void Start()
    {
        PrimordialEvaluateByMac();
    }

#if UNITY_STANDALONE_OSX

    [DllImport("ReviewUnity")]
    private static extern void ShowReview();

#endif

    public void PrimordialEvaluateByMac()
    {
#if UNITY_STANDALONE_OSX
        ShowReview();
#endif
    }
}

三,效果展示

3.1 工程中效果

3.2 Mac包效果


3.3 源码分享

上面示例Demo分享:下载地址

积分不足的同学,可以点击文末卡片,回复“Mac好评” 自助获取


四,相关文档

Unity 官方文档:macOS 播放器:适用于 IL2CPP 的 C++ 源代码插件

Unity 官方文档:为桌面平台(Windows,Mac,Linux)构建插件

官方Demo链接