BITFALL/Assets/BITKit/UnityPluginsSupport/Steamwork/SteamService.cs

62 lines
1.8 KiB
C#
Raw Normal View History

2023-06-08 14:09:50 +08:00
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Steamworks;
2023-08-23 01:59:40 +08:00
using UnityEditor.XR;
2023-06-08 14:09:50 +08:00
namespace BITKit.Steamwork
{
public class SteamService : MonoBehaviour,ISteamService
{
2023-06-17 16:30:53 +08:00
internal static SteamService Singleton;
2023-06-08 14:09:50 +08:00
[Header(Constant.Header.Settings)]
[SerializeField]private uint appId=480;
//接口实现
2023-06-17 16:30:53 +08:00
public ulong SteamId => SteamClient.SteamId;
public string Name => SteamClient.Name;
2023-08-23 01:59:40 +08:00
public bool IsInitialized=>SteamClient.IsValid&&SteamClient.IsLoggedOn;
2023-06-17 16:30:53 +08:00
public int Id => (int)SteamClient.SteamId.AccountId;
2023-08-23 01:59:40 +08:00
private bool initialized;
2023-06-17 16:30:53 +08:00
private void Awake()
{
Singleton = this;
}
2023-06-08 14:09:50 +08:00
private void Start()
{
try
{
2023-08-23 01:59:40 +08:00
if (SteamClient.IsValid is false)
{
SteamClient.Init(appId);
}
initialized = true;
2023-06-08 14:09:50 +08:00
BIT4Log.Log<SteamService>("已初始化Steam");
}
2023-08-23 01:59:40 +08:00
catch (Exception)
2023-06-08 14:09:50 +08:00
{
2023-08-23 01:59:40 +08:00
BIT4Log.Warning<SteamService>("Steam初始化失败请验证客户端是否运行");
throw;
2023-06-08 14:09:50 +08:00
}
}
2023-08-23 01:59:40 +08:00
2023-06-08 14:09:50 +08:00
private void OnDestroy()
{
2023-08-23 01:59:40 +08:00
if (initialized)
SteamClient.Shutdown();
2023-06-08 14:09:50 +08:00
}
}
2023-06-17 16:30:53 +08:00
[Serializable]
public class SteamServiceSingleton:ISteamService
{
private ISteamService _steamServiceImplementation=>SteamService.Singleton;
public int Id => _steamServiceImplementation.Id;
public ulong SteamId => _steamServiceImplementation.SteamId;
public string Name => _steamServiceImplementation.Name;
2023-08-23 01:59:40 +08:00
public bool IsInitialized=>_steamServiceImplementation.IsInitialized;
2023-06-17 16:30:53 +08:00
}
2023-06-08 14:09:50 +08:00
}