栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

【Unity】对接Steam

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Unity】对接Steam

文章目录
  • 一、接入Steamworks SDK
    • 1.1 下载
    • 1.2 解压
    • 1.3 设置Steamworks
      • 1.3.1 增加Depot
      • 1.3.1 关联Depot
    • 1.4 修改配置文件
    • 1.5 使用SteamPipeGUI上传游戏
      • 1.5.1解压SteamPipeGUI
      • 1.5.2配置SteamPipeGUI
    • 1.6 发布版本
  • 二、接入Steamworks.NET
    • 2.1 下载
    • 2.2 修改配置文件
    • 2.3 成就
      • 2.3.1 Steamworks添加成就
      • 2.3.2 代码逻辑
  • 三、接入Steam云存档(Auto-Cloud)
    • 3.1 设置Steamworks
    • 3.2 代码思路


一、接入Steamworks SDK 1.1 下载

步骤1:搜索Steamworks或点击Steamworks链接

步骤2:选择文献库

步骤3:选择Steamworks SDK

步骤4:点击此处下载最新SDK

1.2 解压

将下载下来的SDK压缩包解压,并将Unity打包的游戏文件复制到解压路径steamworks_sdk_153asdktoolsContentBuildercontent下。

注意:
   路径中不能有空格或中文。
   本文SteamWorksSDK版本为153a。

1.3 设置Steamworks 1.3.1 增加Depot

步骤1:

步骤2:

步骤3:

1.3.1 关联Depot

步骤1:新增Depot后,按下图所示操作,点击自己的游戏 。

步骤2:找到下图所示内容,并点击

步骤3:找到下图所示内容,并点击

步骤4:添加之前新建的Depot至此

步骤5:回到步骤3页面,按照步骤3、步骤4操作,关联此处两个程序包

1.4 修改配置文件

路径:1.2解压到的地方steamworks_sdk_153asdktoolsContentBuilderscripts

该路径下有四个文件,无特殊需求下只需修改两个文件。

步骤1:
   将第一个文件的文件名中的数字改为自己游戏对应的AppID。
   将第二个文件的文件名中的数字改为1.3中设置的DepotID。

步骤2:打开第一个文件进行修改。

步骤3:打开第二个文件进行修改。

1.5 使用SteamPipeGUI上传游戏 1.5.1解压SteamPipeGUI

路径:1.2解压到的地方steamworks_sdk_153asdktools下找到SteamPipeGUI.zip文件,将该文件解压到当前文件夹。

打开SteamPipeGUI.exe文件

1.5.2配置SteamPipeGUI

注意:
   第一次上传需要验证。

1.6 发布版本

步骤1:打开Steamworks后,操作如下图

步骤2:选择安装-通用安装后,操作如下图。Unity打包的所有文件,指之前移动到1.2解压到的地方steamworks_sdk_153asdktoolsContentBuildercontent路径下的游戏文件。

步骤3:选择生成版本,并将新上传的版本分支设置为对应分支,并点击预览更改

步骤4:点击 立即将生成版本设置上线,则新版本成功发布。

步骤5:重启Steam,完成游戏更新。


二、接入Steamworks.NET 2.1 下载

步骤1:搜索Steamworks.NET或点击Steamworks.NET链接
步骤2:点击下图,红框位置

步骤3:点击下图,红框位置

步骤4:选择下载Unity最低支持版本,包含当前使用Unity版本的Steamworks.NET.unitypackage。并将该包导入到Unity中。

2.2 修改配置文件

步骤1:在Unity项目中找到steam_appid文件并打开,将内容修改为自己的AppId。

步骤2:
   如下图所示,搜索SteamManager.cs文件,并打开。

   在SteamManager.cs文件中,找到下图代码并修改为自己的AppId。

步骤3:
   新建GameObject,并将SteamManager.cs挂载到空物体上,点击运行。Steam中对应游戏显示正在运行,Steamworks.NET即为正确接入。

注意:Unity运行后,Steam中对应游戏显示正在运行。如需停止运行,需重启Unity或Steam。

2.3 成就 2.3.1 Steamworks添加成就

步骤1:登录Steamworks,选择统计与成就。

步骤2:点击统计与成就-成就本地化,勾选成就想要显示的语言类型并保存。

步骤3:点击统计与成就-成就,设置各语言版本游戏成就内容。
步骤4:完成成就录入后,点击发布->准备发行->发布到Steam->完成发行

注意:
   点击完成发行后,Steam需重启,才会更新修改内容。

2.3.2 代码逻辑

思路:将SteamManager修改为单例模式,在游戏中达成成就的地方调用。

步骤1:增加命名空间,用于获取AchievementType中的名称

using System;

步骤2:增加枚举AchievementType。枚举中键名与2.3.1中增加的成就API名称保持一致,数量与2.3.1中增加的成就数量保持一致。

public enum AchievementType
{
    Achievement1,
    Achievement2,
    Achievement3
}

步骤3:将SteamManager修改为单例模式

protected static SteamManager s_instance;
	public static SteamManager Instance {
		get {
				if (s_instance == null) {
					return new GameObject("SteamManager").AddComponent();
				}
				else {
					return s_instance;
				}
			}
	}

步骤4:增加达成成就方法,调用SteamManager.Instance.Reach_achievement(Achievement_type.Achievement1);

public void Reach_Achievement(AchievementType ach_type)
{
    Complete_Achievement(ach_type.ToString());   
}

private void Complete_Achievement(string achievementName)
{
    if (!SteamManager.Initialized)
    {
        return;
    }
    else
    {
        if (SteamUserStats.SetAchievement(achievementName))
            SteamUserStats.StoreStats();
    }
}

步骤5:增加清除成就方法,调用SteamManager.Instance.Remove_achievement(Achievement_type.Achievement1);

public void Remove_Achievement(AchievementType ach_type)
{
    Clear_Archievement(ach_type.ToString());   
}

private void Clear_Archievement(string achievementName)
{
    if (!SteamManager.Initialized)
    {
        return;
    }
    else
    {     
        if (SteamUserStats.ClearAchievement(achievementName))
            SteamUserStats.StoreStats();            
    }
}

步骤6:增加清除所有成就方法,调用SteamManager.Instance.Clear_AllArchievements();

public void Clear_AllArchievements()
{
    if (!SteamManager.Initialized)
    {
        return;
    }
    else
    {
        foreach (var achievementName in Enum.GetNames(typeof(AchievementType)))
        {
            if (SteamUserStats.ClearAchievement(achievementName))
                SteamUserStats.StoreStats();
        }         
    }
}

三、接入Steam云存档(Auto-Cloud) 3.1 设置Steamworks

步骤1:设置单用户配额
步骤2:设置上传存档路径

步骤3:保存并发布

步骤4:重启Steam,对应游戏显示云存档图标

3.2 代码思路

步骤1:使用Steam启动游戏,自动下载云存档至本地云存档。
步骤2:开始游戏后,判断 本地存档和本地云存档 版本号是否一致。
   1)版本号,本地存档>本地云存档。使用本地云存档覆盖本地存档,并迭代更新到最新版。
   2)版本号,本地存档=本地云存档。使用本地云存档覆盖本地存档。
   3)版本号,本地存档<本地云存档。使用本地存档,不使用本地云存档。

步骤3:保存游戏时,用本地存档覆盖本地云存档。
步骤4:关闭游戏,Steam自动将本地云存档上传至云存档。

参考文章

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906427.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号