Unity - Как получить данные из сценария js в сценарий csharp?

Мой счет игрока находится в игровом объекте _GM (script = gamemaster.js) следующим образом:

static var currentScore : int = 0;

Теперь я хочу, чтобы эта оценка использовалась здесь: (В скрипте gameOver.cs, расположенном в другой сцене)

public void SetScore() {
        var scoreData = new Dictionary<string,string> ();
        scoreData ["score"] = THIS SHOULD BE THE CURRENTSCORE;
        FB.API ("/me/scores", Facebook.HttpMethod.POST, delegate (FBResult result) {
            Debug.Log ("Score submit result: " + result.Text);
        }, scoreData);
    }

Так что моя игра может публиковать эти данные в Facebook.

Как лучше всего это сделать?


person Infinity    schedule 26.05.2015    source источник


Ответы (1)


Когда у вас есть два скрипта, особенно если они на разных языках, вам нужно обратить внимание на порядок компиляции скриптов.

Итак, что вам нужно сделать, это

  • Поместите файл .js в Standard Assets, Pro Standard Assets или Plugins.
  • Поместите файл .cs в любую папку, кроме перечисленных выше.
  • Теперь в вашем файле .cs вы можете получить доступ к счету «currentScore» следующим образом.

    scoreData ["score"] = gamemaster.currentScore;
    

Руководство по Unity — Порядок компиляции скрипта

person Venkat at Axiom Studios    schedule 27.05.2015
comment
Я переместил файл gamemaster.js в папку с плагинами. Проблема, с которой я столкнулся сейчас, заключается в том, что все ссылки на другие скрипты (gamemaster.js — это скрипт, который объединяет игру) получают ошибки. Я имею в виду другие сценарии, подобные этому: ScoreLane7.LaughScorePoint. - person Infinity; 27.05.2015
comment
Переместите эти скрипты в ту же папку, что и gamemaster.js. Задача решена - person Venkat at Axiom Studios; 27.05.2015
comment
Я не могу, потому что эти скрипты работают с плагином, который должен быть скомпилирован перед ними. Но я переписал свой скрипт gamemaster.js, чтобы он больше не нуждался в этих скриптах. Теперь я все еще получаю эту небольшую ошибку: Не удается неявно преобразовать тип int' to string', когда я пытаюсь опубликовать счет в FB. - person Infinity; 27.05.2015
comment
Это потому, что ваша переменная score является целым числом. Изменить на gamemaster.currentScore.ToString() - person Venkat at Axiom Studios; 27.05.2015