Помогите решить ошибки в юнити c#
Здравствуйте я новичок в програмировании и я хотел как то соединить два кода в одном. Кароче вот
using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using UnityEditor.Experimental.GraphView;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Dialog_NextClick : MonoBehaviour
{
public GameObject Text1;
public GameObject Text2;
private bool isText1 = true;
public NpcTalk npc_taskScript;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
if (isText1 == true)
{
isText1 = false;
}
else
{
isText1 = true;
npc_taskScript.EndDialog = true;
}
}
if (isText1 == true)
{
Text1.SetActive(true);
Text2.SetActive(false);
}
else
{
Text1.SetActive(false);
Text2.SetActive(true);
}
if (isText1 == false)
{
{
Text2.SetActive(false);
else
{
private void ChangeScene(int scene) => SceneManager.LoadScene(3);
}
}
}
}
}
Ошибки:1.Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка (активно) CS1003 Синтаксическая ошибка, требуется "(" Assembly-CSharp C:\Users\botez\Downloads\My project\Assets\Scripts\Event halloween script\Dialog_NextClick.cs 48.
2. Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка (активно) CS1026 Требуется ")" Assembly-CSharp C:\Users\botez\Downloads\My project\Assets\Scripts\Event halloween script\Dialog_NextClick.cs 48.
3.Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка (активно) CS1002 Требуется ";". Assembly-CSharp C:\Users\botez\Downloads\My project\Assets\Scripts\Event halloween script\Dialog_NextClick.cs 48.
4.Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка (активно) CS0106 Модификатор "private" недопустим для этого элемента. Assembly-CSharp C:\Users\botez\Downloads\My project\Assets\Scripts\Event halloween script\Dialog_NextClick.cs 51.
5.Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка (активно) CS1525 Недопустимый термин "else" в выражении Assembly-CSharp, Assembly-CSharp C:\Users\botez\Downloads\My project\Assets\Scripts\Event halloween script\Dialog_NextClick.cs 48.
Здравствуйте! Давайте разберем ошибки в вашем коде и внесем необходимые исправления.
Вот исправленный вариант вашего кода:
```csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Dialog_NextClick : MonoBehaviour
{
public GameObject Text1;
public GameObject Text2;
private bool isText1 = true;
public NpcTalk npc_taskScript;
void Start()
{
// Инициализация, если нужно
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
if (isText1)
{
isText1 = false;
}
else
{
isText1 = true;
npc_taskScript.EndDialog = true;
}
}
Text1.SetActive(isText1);
Text2.SetActive(!isText1);
}
private void ChangeScene(int scene)
{
SceneManager.LoadScene(scene);
}
}
```
Теперь по конкретным ошибкам:
1. **Ошибка CS1003 и CS1026:** Вы имели лишнюю фигурную скобку и неправильно расставленные скобки. Убедитесь, что каждая открывающая скобка `{` имеет соответствующую закрывающую `}`.
2. **Ошибка CS1002:** Проблема была связана с неправильным синтаксисом после `if`. Убедитесь, что вы правильно расставили точки с запятой в конце операторов3. **Ошибка CS0106:** Модификатор `private` нельзя использовать внутри блока кода. Он должен быть применен к методам или переменным на уровне класса.
4. **Ошибка CS1525:** Ошибка в синтаксисе `else`. Проверьте, чтобы у вас не было лишних фигурных скобок и чтобы все конструкции были правильно оформлены.
Теперь ваш код должен компилироваться без ошибок. Если будут дополнительные вопросы, не стесняйтесь спрашивать!
if (isText1 == false)
{
{
Ну так ты проследи, чтобы скобки нормально были расставлены. У тебя указана строка ошибки, просто посмотри на строку и найди проблему.
if (isText1 == true)
Нет смысла так писать, можно ограничиться этим.
if (isText1)
И ни к чему дублировать свой код.
Text1.SetActive(isText);
Text2.SetActive(!isText);
Вот так вообще писать нельзя. public/private и прочие модификаторы доступа не могут быть использованы внутри метода.
else
{
private void ChangeScene(int scene) => SceneManager.LoadScene(3);
}
Ты рано начал изучать юнити. Изучи сначала основы программирования на обычных консольных приложениях.
isText = !isText;