Невозможно неявно преобразовать тип «Steamworks.CSteamID» в «плавающий».

В настоящее время я использую Steamworks.net с Unity3d и C#. Что я хочу сделать, так это получить идентификатор пользователя Steam, в данном случае мой собственный, а затем выполнить функцию.

Это то, что у меня есть до сих пор:

private static float berdyevID = 76561198040013516;
private static float steamID;


void Start() {

    if(SteamManager.Initialized) {

        string name = SteamFriends.GetPersonaName();

        // get steam user id
        steamID = Steamworks.SteamUser.GetSteamID();

        // see if it matches
        if (berdyevID == steamID) {

            Debug.Log ("Steam ID did match");
        } else {

            Debug.Log ("Steam ID did not match");
        }


    }

}

Я получаю сообщение об ошибке от Unity, в котором говорится:

Невозможно неявно преобразовать тип Steamworks.CSteamID' tofloat. Существует явное преобразование (вам не хватает приведения?)

Что меня смущает. Я попытался провести исследование в Google, чтобы найти возможное решение, но ничего не смог найти. Кто-нибудь может помочь?

ИЗМЕНИТЬ:

Я пробовал это, но это не сработало:

private static ulong berdyevID = 76561198040013516;
private static ulong steamID;

void Start() {

    if(SteamManager.Initialized) {

        string name = SteamFriends.GetPersonaName();

        // get steam user id
        steamID = Steamworks.SteamUser.GetSteamID();

        // see if it matches
        if (berdyevID == steamID) {

            Debug.Log ("Steam ID did match");
        } else {

            Debug.Log ("Steam ID did not match");
        }
    }
}

person papi    schedule 28.09.2017    source источник


Ответы (1)


Ваш GetSteamID() возвращает объект типа Steamworks.CSteamID, который нельзя присвоить переменной steamID типа float.

В структуре CSteamID есть переменная ulong с именем m_SteamID. Вот где находится идентификатор.

private static ulong berdyevID = 76561198040013516;
private static ulong steamID;


void Start() {

    if(SteamManager.Initialized) {

        string name = SteamFriends.GetPersonaName();

        // get steam user id
        steamID = Steamworks.SteamUser.GetSteamID().m_SteamID;

        // see if it matches
        if (berdyevID == steamID) {

            Debug.Log ("Steam ID did match");
        } else {

            Debug.Log ("Steam ID did not match");
        }
    }
}
person Suren Srapyan    schedule 28.09.2017
comment
Ладно.. Что мне тогда делать? - person papi; 28.09.2017
comment
Посмотрите на API и посмотрите, как он возвращает идентификатор из этого класса. - person Suren Srapyan; 28.09.2017
comment
@Programmer, это забавно, потому что я уже пробовал ulong, и это не сработало. Та же ошибка, но ulong вместо float, очевидно - person papi; 28.09.2017
comment
@Programmer, что ты имеешь в виду, если это работает сейчас? Ваш код выглядит так же, как минуту назад? улонг не работал. - person papi; 28.09.2017
comment
Добавьте Изменить к новому вопросу и добавьте новый код. к этому - person Programmer; 28.09.2017
comment
Какая? Какой новый вопрос? Улонг и поплавок не работали. Я смущен? @Программист - person papi; 28.09.2017
comment
Останавливаться. Я изменил этот ответ с помощью кода, и вы заявили, что он не работает. Просто измените свой вопрос и добавьте новый код, который не работает. - person Programmer; 28.09.2017
comment
@Programmer, я сделал это, хотя и не видел смысла. - person papi; 28.09.2017
comment
Вы пробовали улонг. Но пытались ли вы получить часть m_SteamID функции GetSteamID()? - person TheSkimek; 28.09.2017
comment
Серьезно? Нет смысла, но вы пропустили самую важную часть, которая была m_SteamID.... Если вам трудно читать, просто скопируйте код в ответе. Это steamID = Steamworks.SteamUser.GetSteamID().m_SteamID; не steamID = Steamworks.SteamUser.GetSteamID(), и я попросил вас добавить EDIT для вашего редактирования. Пришлось откатить ваш вопрос РЕДАКТИРОВАТЬ, чтобы исправить часть редактирования. Прочтите ответ еще раз. - person Programmer; 28.09.2017
comment
Это то, что я получаю за то, что делаю несколько дел одновременно. Мои извинения. Я ценю вашу помощь! - person papi; 28.09.2017
comment
@Программист Спасибо - person Suren Srapyan; 28.09.2017