小屋創作

日誌2018-10-09 08:00

Unity在Steam成就的簡易教學C#(只有玩家端)

作者:斯穆絲酷兒

大家好,在進入主題前斯穆絲酷兒的小松鼠先毛炊自薦一下,本團隊專門製作台灣原創成人遊戲,目前有以下兩個作品。
(可以點圖進入Steam的商店頁面,不過要先登入帳號並要有設定成人選項)

伊芙物語 勇者的修行

露露&恩諾伊:交織世界命運的少女

目前都有上Steam,並且有加上Steam成就才誕生這篇教學文,該版本的教學最後更新為2019/12/13。

主題

Steam成就

簡單來說
在遊戲內達成某些目標,給予玩家肯定的一種機制。

先前準備
1.在Steam上先弄好,成就的程式ID(API名稱)、成就的名稱(顯示名子)、成就的說明、成就的達成圖及未達成圖。



2.到https://steamworks.github.io/下載unity專用steam的程式。
進入頁面後點擊左邊第一項目【installation】
頁面內容有Releases再點進去

進入後把Unitypackage的檔案包下載下來。


3.把下載的steam包直接丟進您的專案內。

4.到你專案的Assets底下找steam_appid.txt,將其內容修改成你Steam上的App_id。


5.Assets\Scripts\Steamworks.NET底下有個SteamManager

6.修改SteamManager內的(AppId_t)480),把480改成你的App_id存檔。
目前新版本會顯示成這樣
只要改成這樣就行
if (SteamAPI.RestartAppIfNecessary((AppId_t)480))

以上2~6是很簡易的說明,不懂可以看下面的影片。
國外影片教學:https://www.youtube.com/watch?v=o5-Y-5Dtg_c&t=3s

以上就是先前的準備項目。

主要是玩家端單向給Steam資訊,沒有類似server要來回作檢查的項目內容其實只有幾個會用到。

再來準備一個,空GameObject放在場景內(該物件會無法被刪除),把 SteamManager拉進該物件內。

之後~
可寫任何程式內不用刻意Call SteamManager,但該程式要補上 using Steamworks;

當玩家達成成就時只要在程式內容打上以下兩條。
-------------------------------------------------------------------------------
SteamUserStats.SetAchievement("API名稱");
SteamUserStats.StoreStats();
-------------------------------------------------------------------------------
API名稱就是你先前準備的程式ID,看要指定哪一個,只要執行當下就會獲得成就。



成就完成後需要重新測試的話你會需要這個程式幫助你Reset。
-------------------------------------------------------------------------------
SteamUserStats.ResetAllStats(true);
SteamUserStats.StoreStats();
-------------------------------------------------------------------------------
會將你所有之前已經達成的成就變成沒有達成。


這就是Steam上成就安置在Unity遊戲內的方式。


31

3

LINE 分享

相關創作

【原創】虐爛FPS新手的我竟遭約出現實快打!?㉝

【原創】狐之窗 第2話

【中村くまりん】 【蔚藍檔案哇庫哇庫四格漫】愛莉怪怪的……

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】