Как мне исправить ошибку CS1525 в этом процедурном коде генерации в моей 2D игре roguelike dungeon?

#c# #unity3d #procedural-generation #roguelike

#c# #unity3d #процедурная генерация #Рогалик

Вопрос:

Новое в кодировании Unity C #. Я пишу скрипт для достижения процедурной генерации в 2D-игре roguelike. Моя идея состоит в том, чтобы использовать enum для представления 4 направлений (вверх, вниз, влево, вправо), а затем выбрать случайное направление для создания комнаты из сборного. Тогда следующая комната будет сгенерирована тем же методом. Вот мои коды:

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RoomGenerator : MonoBehaviour
{
    public enum Direction { up, down, left, right };
    public Direction direction;
    [Header("Room Information")]
    public GameObject roomPrefab;
    public int roomNumber;
    public Color startColor, endColor;

    [Header("Position Controller")]
    public Transform generatorPoint;
    public float xOffset;
    public float yOffset;
    public List<GameObject> rooms = new List<GameObject>();


    void Start()
    {
        for (int = 0; i < roomNumber, int  )
        {
            rooms.Add(Instantiate(roomPrefab, transform.position, Quaternion.identity));
            ChangePointPosition();
        }

    }


    void Update()
    {
        
    }

    public void ChangePointPosition()
    {
        direction = (Direction)Random.Range(0,4);

        switch(direction)
        {
            case Direction.up:
                generatorPoint.position  = new Vector3 (0, yOffset, 0);
                break;
            case Direction.down:
                generatorPoint.position  = new Vector3 (0, -yOffset, 0);
                break;
            case Direction.left:
                generatorPoint.position  = new Vector3 (-xOffset, 0, 0);
                break;
            case Direction.right:
                generatorPoint.position  = new Vector3 (xOffset, 0, 0);
                break;
        }
    }
}
 

Unity сообщает «ошибка CS1525: недопустимый термин выражения ‘int'». Как это возможно? Я что-то пропустил? Пожалуйста, помогите. Заранее спасибо!

Ответ №1:

Вам не хватает имени переменной в вашем цикле for:

  for (int i = 0; i < roomNumber, int  )
 

Комментарии:

1. Спасибо! Я указал переменное имя, как вы предложили, хотя первое не показалось проблематичным, и все прошло нормально! Еще раз большое вам спасибо.

2. @VicL Почему бы вам просто не отметить мой ответ как принятый?