1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #if (UNITY_STANDALONE || UNITY_EDITOR) && UNITY_ENABLE_STEAM_CONTROLLER_SUPPORT
- using System;
-
- namespace UnityEngine.InputSystem.Steam
- {
- /// <summary>
- /// A handle for a Steam controller API object typed <typeparamref name="TObject"/>.
- /// </summary>
- /// <typeparam name="TObject">A type used to type the Steam handle. The type itself isn't used other than
- /// for providing type safety to the Steam handle.</typeparam>
- public struct SteamHandle<TObject> : IEquatable<SteamHandle<TObject>>
- {
- private ulong m_Handle;
-
- public SteamHandle(ulong handle)
- {
- m_Handle = handle;
- }
-
- public override string ToString()
- {
- return string.Format("Steam({0}): {1}", typeof(TObject).Name, m_Handle);
- }
-
- public bool Equals(SteamHandle<TObject> other)
- {
- return m_Handle == other.m_Handle;
- }
-
- public override bool Equals(object obj)
- {
- if (ReferenceEquals(null, obj))
- return false;
- return obj is SteamHandle<TObject> && Equals((SteamHandle<TObject>)obj);
- }
-
- public override int GetHashCode()
- {
- return m_Handle.GetHashCode();
- }
-
- public static bool operator==(SteamHandle<TObject> a, SteamHandle<TObject> b)
- {
- return a.m_Handle == b.m_Handle;
- }
-
- public static bool operator!=(SteamHandle<TObject> a, SteamHandle<TObject> b)
- {
- return !(a == b);
- }
-
- public static explicit operator ulong(SteamHandle<TObject> handle)
- {
- return handle.m_Handle;
- }
- }
- }
-
- #endif // (UNITY_STANDALONE || UNITY_EDITOR) && UNITY_ENABLE_STEAM_CONTROLLER_SUPPORT
|