【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_153a\sdk\tools\ContentBuilder\content下。
注意:
路径中不能有空格或中文。
本文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_153a\sdk\tools\ContentBuilder\scripts
该路径下有四个文件,无特殊需求下只需修改两个文件。
步骤1:
将第一个文件的文件名中的数字改为自己游戏对应的AppID。
将第二个文件的文件名中的数字改为1.3中设置的DepotID。
步骤2:打开第一个文件进行修改。
步骤3:打开第二个文件进行修改。
1.5 使用SteamPipeGUI上传游戏
1.5.1解压SteamPipeGUI
路径:1.2解压到的地方\steamworks_sdk_153a\sdk\tools下找到SteamPipeGUI.zip文件,将该文件解压到当前文件夹。
打开SteamPipeGUI.exe文件
1.5.2配置SteamPipeGUI
注意:
第一次上传需要验证。
1.6 发布版本
步骤1:打开Steamworks后,操作如下图
步骤2:选择安装-通用安装后,操作如下图。Unity打包的所有文件,指之前移动到1.2解压到的地方\steamworks_sdk_153a\sdk\tools\ContentBuilder\content路径下的游戏文件。
步骤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<SteamManager>();}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自动将本地云存档上传至云存档。
参考文章
【Unity】对接Steam相关推荐
- Unity对接Steam SDK
作者: 信天游037911 https://blog.csdn.net/qq_40654110/article/details/79310381 1. 登录开发者帐号,去steam下载steamwor ...
- 【转】独立游戏如何对接STEAM SDK
独立开发者在对接STEAM SDK之前 首先得先登上青睐之光,也就是我们俗称的"绿光" 一般要先对接G胖家的SDK,然后提交版本,最后等待审核... 我本身是unity 开发,对C ...
- Applovin/App Store/Google Play/Unity/Ironsource/Steam如何收款?
1.Applovin支持的付款方式.付款时间(来自官方): 付款方式:AppLovin支持ACH.Paypal和电汇. 付款时间:我们将在下个月的15日支付上个月的收入(NET15).例如,如果您在1 ...
- Unity对接应用宝SDK(YSDK)
之前接过MSDK,现在新的项目需要接YSDK.记录下对接过程遇到的问题. 总所周知,应用宝的SDK的文档都写得比较好,仔细阅读文档肯定是必要的,接的过程应该也会比(ru)较(ci)顺(cao)利(da ...
- [Unity]对接华为sdk 登录
首先先下载并引入这个package 华为SDK-UnityPackage 然后 华为Plugins\\Android插件-C#文档类资源-CSDN下载 下载这2个插件 丢到Plugins\Androi ...
- UE4 对接Steam
以下为归类总结,不当之处尽可指出~~ ^ _ ^ UE4 官方文档: https://docs.unrealengine.com/5.1/zh-CN/online-subsystem-steam-in ...
- PHP 对接 STEAM 第三方登陆
申请STEAM API key(需要梯子) steam官方申请入口 steam官方apikey申请入口 composer 安装扩展 composer require medivh/oauth dev- ...
- Unity 对接4399广告 仅视频
1.Unity代码 链接:路径 2.xml配置 <manifest xmlns:android="http://schemas.android.com/apk/res/android& ...
- ue4如何链接html5设备,UE4怎么对接Steam
1-打开项目的"DefaultEngine"文件,添加以下 [/Script/Engine.GameEngine] +NetDriverDefinitions=(DefName=& ...
- Unity 对接谷歌支付权限——若要添加应用内商品,您需要为 APK 添加 BILLING 权限
添加代码 <uses-permission android:name="com.android.vending.BILLING" />即可 <uses-pe ...
最新文章
- 拾谈“用最有效率的方法算出2乘以8等於几?”
- Android 高级自定义View实战
- 卸载Win10+ubuntu14双系统中的ubuntu系统
- web项目没有run on server时..
- 管理系统界面设计python_python图形化界面设计(wxpython)一布局管理
- dedecms模版php,dedecms专题模板怎么用
- 最小生成树——克鲁斯卡尔算法
- 服务端断开_Java多线程技术:实现多用户服务端Socket通信
- centos python_【建议收藏】Python虚拟环境最全教程,看这篇就够了!
- window.open 与 iframe
- java中 運算符,Java中的運算符
- 笔记本电脑开机后在桌面上没有计算机图标,电脑开机之后桌面上没有图标怎么处理...
- matlab 从 excel读取 日期_MATLAB一键记账它不香吗?
- 腾讯信鸽推送(一):服务端架构
- Linux(CentOS)安装 Vim编辑器
- 接口分析--详细解读微博接口获取
- WINFORM时间控件(DATATIMEPICKER)的显示格式设置
- VMware Fusion for mac虚拟机中Linux系统并使用ssh连接
- DBMS Implementation 笔记 04: Indexing
- 注塑模设计的一般流程,模具新人必看