Unity 之 使用Mac原生好评
前言
本文通过Mac端原生好评示例,教你学会Unity和macOS交互。
一,xCode端处理
1.1 创建Bundle
打开xCode选项卡选择macOs --> Bundle 然后点击Next下一步
填写名称,包名等信息,然后点击Next下一步
1.2 写OC代码
在工程上右键 --> New File… 分别创建.h和.m文件:
分别命名为ReviewUnity.h
和ReviewUnity.m
创建完成:
脚本内容如下:
ReviewUnity.h
//
// ReviewUnity.h
// Unity-iPhone
//
// Created by Czhenya on 2021/11/22.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface ReviewUnity : 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 ReviewUnity
@end
#if defined (__cplusplus)
extern "C"
{
#endif
void ShowReview(){
//if (@available(iOS 14.0, *)) {
// [SKStoreReviewController requestReviewInScene:UnityGetGLView().window.windowScene];
//} else
if (@available(iOS 10.3, *)) {
[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)构建插件