Вопрос:

Ошибка CS1513:} ожидается & CS1022: ожидается конец файла - но файл выглядит нормально для меня

c# unity3d

17 просмотра

1 ответ

9 Репутация автора

Таким образом, в основном консоль Unity выдает мне следующие ошибки, однако сейчас я просматривал файл десятки раз и не могу понять, почему я получаю эти ошибки:

CS1513:} ожидается (строка 52)

CS1022: определение типа или пространства имен или ожидаемый конец файла (строка 87)

Это код моего файла:

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System;
using System.Collections.Generic;

public class GameControl : MonoBehaviour
{
public static GameControl instance;         //A reference to our game control script so we can access it statically.
public Text scoreText;
public Text wordText;                       //A reference to the UI text component that displays the player's score.
public GameObject gameOvertext;             //A reference to the object that displays the text which appears when the player dies.

private int score = 0;                      //The player's score.
public bool gameOver = false;               //Is the game over?
public float scrollSpeed = -1.5f;

void Awake()
{
    //If we don't currently have a game control...
    if (instance == null){
        //...set this one to be it...
        instance = this;

        generateWord();
    }


    //...otherwise...
    else if(instance != this){
        //...destroy this one because it is a duplicate.
        Destroy (gameObject);
    }
}

public void generateWord()
{

    var random = new System.Random();
    var wordList = new List<string>{ "sisters","recess","creepy","false", "admit", "apparel", "top", "cattle", "precious", "sugar", "credit", "finger", "watch", "claim", "smash", "bleach", "wrist", "dad", "push", "curve"};
    int index = random.Next(wordList.Count);
    string word = (wordList[index]);

    wordText.text = "WORD: " + word;

    generateLetters(word);

}

public void generateLetters(string word)
{

    public char[] charArr = word.ToCharArray();
    public int wordLength = charArr.Length;

}

void Update()
{
    //If the game is over and the player has pressed some input...
    if (gameOver && Input.GetMouseButtonDown(0))
    {
        //...reload the current scene.
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }
}

public void BirdScored()
{
    //The bird can't score if the game is over.
    if (gameOver)
        return;
    //If the game is not over, increase the score...
    score++;
    //...and adjust the score text.
    scoreText.text = "SCORE: " + score.ToString();
}

public void BirdDied()
{
    //Activate the game over text.
    gameOvertext.SetActive (true);
    //Set the game to be over.
    gameOver = true;
}
}

Любая помощь приветствуется :)

Автор: Angus Timoney Источник Размещён: 11.08.2019 07:41

Ответы (1)


0 плюса

1908 Репутация автора

public void generateLetters(string word) {

     public char[] charArr = word.ToCharArray();
     public int wordLength = charArr.Length;

}

Методы не могут содержать открытые переменные, но вы можете изменить открытую переменную в классе. Вот так:

    public char[] charArr; // Or private. 
    public int wordLength; // Just make sure it is inside the class.

    // ...

    public void generateLetters(string word) {

        charArr = word.ToCharArray();
        wordLength = charArr.Length;

    }

Кроме того, постарайтесь сделать ваши соглашения об именах непротиворечивыми, некоторые из ваших функций начинаются с заглавной буквы, такой как BirdScoredили BirdDied, в то время как другие любят generateLettersили generateWordначинаются с нижнего регистра.
Попытайтесь быть последовательными в своих именах для функций / переменных.

Автор: Kaynn Размещён: 11.08.2019 08:03
Вопросы из категории :
32x32