Я делаю небольшую игру, в которой игроку нужно отвечать на вопросы, перетаскивая персонажей в ведро. При создании своих персонажей я добавляю идентификатор, передавая переменную другому скрипту. После этого эту переменную необходимо передать другому скрипту, который проверяет, совпадает ли идентификатор символа с идентификатором вопроса. При запуске игры и перемещении персонажа в ведро триггер не срабатывает. Просмотр инспектора показывает, что все идентификаторы равны 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");
}
}
}