swamy456 Ответов: 2

При загрузке кода в unity я получаю следующую ошибку


ошибка CS0136: локальная переменная с именем "ter" не может быть объявлена в этой области, поскольку она придаст другое значение `ter", которое уже используется в "дочерней" области для обозначения чего-то другого

случай 2:
Рельеф Тер = (рельефа) местности.GetComponent(typeof(Terrain));
if (ter = = null) {
вернуть;
}
TerrainData ter = ter. terrainData;
местности.splatPrototypes = terData.splatPrototypes;
EditorGUILayout.Разделитель();
float mouseX;
EditorGUILayout.BeginHorizontal();
Графический интерфейс.кожа = ландшафты.guiSkin;
GUILayout.Метка ("Наклон Текстуры");

Что я уже пробовал:

я пытаюсь изменить tre на какое-то другое имя после того, как получаю больше ошибок.

Patrice T

Как вы изменили код?

2 Ответов

Рейтинг:
2

Thomas Daniels

Terrain ter = (Terrain)terrain.GetComponent(typeof(Terrain));
TerrainData ter = ter.terrainData;

Type ter = ... говорит, что новая переменная типа Тип (здесь Terrain или TerrainData) должен быть создан. Но в TerrainData ter = ..., там уже существует переменная типа Тер в той же (или внешней) области, так что он не может этого сделать.

Дайте второму "Тер" другое имя: TerrainData data = ter.terrainData; например. Затем используйте data переменная везде, где вам это нужно.

Вы говорите о том, что получаете "больше ошибок", когда пробовали другое имя; если вышеприведенный шаг-это то, что вы пробовали, но он дает ошибки, то прочитайте ошибки (возможно, выполните поиск в Google, если это необходимо) и выясните, что не так с кодом.


Рейтинг:
1

Jochen Arndt

То ter переменная уже объявлена с другим типом. Похоже на опечатку в этой строке:

TerrainData ter = ter.terrainData;
Так и должно быть
TerrainData terData = ter.terrainData;
потому что вы используете terData переменная потом.


Thomas Daniels

5.

Jochen Arndt

Спасибо.

Похоже, я был немного быстрее.