Unity 接入微信小游戏后常用的功能

1. 前言

近期项目需要将游戏投放到国内各个小游戏平台,微信小游戏,抖音小游戏,快手小游戏,支付宝小游戏等,各种小游戏平台,之前有处理过国内安卓 谷歌 IOS 平台的打包,后边会一一说明各小游戏平台用到的不同的功能。
关于游戏上架微信的博客有很多,此篇主要提一下我上到微信后用到的微信方面相关的功能,分享,邀请,订阅,朋友圈,振动,好友排行等,后台等相关应用,具体还要根据大家项目自行修改。

2.微信相关文档

普通的Unity版本可以参考下方链接接入

3.关于打包微信的应用

1.处理掉烦人的LOGO

  • 代码处理
[Preserve]
public class SkipUnityLogo
{
   
    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSplashScreen)]
    private static void BeforeSplashScreen()
    {
   
#if UNITY_WEBGL
        Application.focusChanged += Application_focusChanged;
#else
        System.Threading.Tasks.Task.Run(AsyncSkip);
#endif
    }
 
#if UNITY_WEBGL
    private static void Application_focusChanged(bool obj)
    {
   
        Application.focusChanged -= Application_focusChanged;
        SplashScreen.Stop(SplashScreen.StopBehavior.StopImmediate);
    }
#else
    private static void AsyncSkip()
    {
   
        SplashScreen.Stop(SplashScreen.StopBehavior.StopImmediate);
    }
#endif
}
#endif

2.微信分享或邀请

微信当中可以自定义参数,来获取来进行分享或邀请

			GetShareInfo(type, WeChatConfig.ShareLocationInvite, (info) =>
			{
   
				LY.Analytics.ShareEvent(WeChatConfig.ShareLocationMenu, type, DataAnalytics.ShareAction.show, info.combineShareId);
				string str = $"sharelocation={
     info.location}&combineShareId={
     info.combineShareId}&action=normal"; //分享
				string str = $"sharelocation={
     info.location}&combineShareId={
     info.combineShareId}&inviter={
     LY.SDK.GetOpenId()}&action=invite"; //邀请
				_inviteCallback = cb;
				_shareStartTime = DateTime.Now;
				ShareAppMessageOption shareAppMessageOption = new ShareAppMessageOption();
				shareAppMessageOption.title = info.text;
				shareAppMessageOption.imageUrl = info.imageUrl;  //自己CDN配置的图片地址
				shareAppMessageOption.query = str;
				WX.ShareAppMessage(shareAppMessageOption); //调用
			}, (error) =>
			{
   
				cb?.Invoke(false);
			});

微信也会返回受邀新用户数量,可以用来做邀请有礼等游戏内容

3.游戏圈

游戏圈的难点,基本就在入口的位置计算上,另外就是我们UI还是用的美术出的效果图,但是向微信上传的是一张空白图

  • 第一步计算生成位置
 public static void CreateClubBtn(Transform tra, Camera camera = null)
		{
   
#if  !UNITY_EDITOR
			if (camera == null) 
			{
    
				camera = Camera.main;
			}

			WeChatWASM.SystemInfo systemInfo = WX.GetSystemInfoSync(); ;
			float ux = Screen.width;
			float uy = Screen.height;
			float wx = (float)systemInfo.screenWidth;
			float wy = (float)systemInfo.screenHeight;
			float sx = wx / ux;
			float sy = wy / uy;

			Vector3 screenPoint = RectTransformUtility.WorldToScreenPoint(camera, tra.position);
			Rect r = Utility.UGUI.GetSize(tra.gameObject);
			float bw = r.width * sx;
			float bh = r.height * sy;
			float bx = screenPoint.x * sx - bw * 0.5f;
			float by = (Screen.height - screenPoint.y) * sy - bh * 0.5f;

			Debug.Log($"CreateClubBtn++++ux:{
     ux} uy:{
     uy} wx:{
     wx} wy:{
     wy} sx:{
     sx} sy:{
     sy} bw:{
     bw} bh:{
     bh} bx:{
     bx} by:{
     by} screenX:{
     screenPoint.x} screenY:{
     screenPoint.y}");
			CreateClubBtn(new Rect(bx,by,bw,bh));

		
#endif
		}
  • 生成出对应功能
public static void 
Unity接入微信小游戏登录SDK需要进行以下步骤: 1. 下载微信小游戏登录SDK:首先,从微信开放平台下载微信小游戏登录SDK的Unity插件,该插件包含了与微信小游戏服务器通信所需的脚本和配置文件。 2. 导入SDK插件:打开Unity项目,在Assets菜单中选择“Import Package” -> “Custom Package”,选择刚下载的微信小游戏登录SDK插件进行导入。 3. 配置游戏参数:在Unity编辑器中,在“Project”视图下找到WXEntryMenu,并打开进行配置。在配置中,要填写自己的微信小游戏AppID和AppSecret等参数。 4. 创建登录按钮:在Unity场景中,创建一个按钮对象,并添加一个脚本用于处理微信小游戏登录逻辑。在该脚本的代码中,调用微信小游戏登录SDK的接口,实现登录功能。 5. 处理登录回调:微信小游戏登录SDK提供了登录结果回调函数,开发者需要在自己的脚本中进行处理。根据回调结果,可以获取到用户的openid、unionid等信息,进一步进行后续操作。 6. 测试登录功能:在Unity编辑器中,点击运行按钮,启动游戏。在游戏中点击登录按钮,会调起微信小游戏客户端进行登录。登录成功后,可以获取到用户的登录信息,并进行相应的游戏逻辑处理。 以上就是Unity接入微信小游戏登录SDK的基本步骤。开发者按照这些步骤进行操作,即可实现微信小游戏的登录功能,并在游戏中使用微信登录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值