Проблема с передачей переменных через скрипты - PullRequest
0 голосов
/ 11 июля 2020

Я делаю небольшую игру, в которой игроку нужно отвечать на вопросы, перетаскивая персонажей в ведро. При создании своих персонажей я добавляю идентификатор, передавая переменную другому скрипту. После этого эту переменную необходимо передать другому скрипту, который проверяет, совпадает ли идентификатор символа с идентификатором вопроса. При запуске игры и перемещении персонажа в ведро триггер не срабатывает. Просмотр инспектора показывает, что все идентификаторы равны 0, тогда как они должны быть от 0 до 9 (по одному на порожденного персонажа). Я прикрепил свой код ниже. Я пробовал использовать метод возврата, а теперь пытаюсь использовать модификатор параметра out, но получаю сообщение об ошибке:

Assets \ Scripts \ IDGiver.cs (11,32) : error CS1001: Ожидается идентификатор

Я не понимаю, где я ошибаюсь. Я надеюсь, что кто-то здесь может мне помочь. Также я впервые задаю вопрос здесь, поэтому надеюсь, что я хорошо его объяснил.

CharacterSpawner

foreach (var item in answerText)
{
    savedPosition = new Vector3(Random.Range(9, -9), 1, Random.Range(9, -9));
    Instantiate(myPrefab, savedPosition, Quaternion.identity);
    myPrefab.GetComponentInChildren<TextMeshPro>().text = answerText[answerNumber].ToString();
    answerNumber++;
    iDGiver.LetsWork(ref answerIndex);
    answerIndex++;
}

IDGiver

public class IDGiver : MonoBehaviour
{
    public int answerIndexNumber;
    private BucketTrigger bucketTrigger;
    public int answerIndex;
    public int newAnswerIndex;
    LetsWork(out newAnswerIndex);

    public void LetsWork(out int answerIndex)
    {
        answerIndexNumber = answerIndex;
    } 

    void Awake()
    {
        bucketTrigger = GameObject.FindObjectOfType<BucketTrigger> ();
    }

BucketTrigger

public class BucketTrigger : MonoBehaviour
{
    int answerIndexNumberCheck;

    public void UpdateIndexNumberCheck(int answerIndexNumber)
    {
        answerIndexNumberCheck = answerIndexNumber;
    }


    void OnTriggerEnter(Collider other)
    {
        if (answerIndexNumberCheck == 1)
        {
            Debug.Log("Test");
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...