Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка Unity (3D) Can't add script

ggg1wsw fd Знаток (258), на голосовании 1 год назад
Не могу добавлять скрипты так как на всех выходит ошибка.
Can't add script
Can't add script component 'Playeer' because the script class cannot be found. Make sure that there are no compile errors and that the file name and class name match.
вот пример скрипта
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Playeer : MonoBehaviour;
{
public GameObject UIElement;

public float RayLenght;

public Text UIText;

private void Update()
{

if (Input.GetKeyDown(KeyCode.E) && UIElement.activeSelf == false)
{

Ray _ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0));
RaycastHit _hit;

if (Physics.Raycast(_ray, out _hit, RayLenght))
{
if (_hit.collider.gameObject.GetComponent<NoteText>())
{

UIElement.SetActive(true);

UIText.text = _hit.collider.gameObject.GetComponent<NoteText>().Text;
}
}
}


else if (Input.GetKeyDown(KeyCode.E) && UIElement.activeSelf == true || Input.GetKeyDown(KeyCode.Escape) && UIElement.activeSelf == true)
{
UIElement.SetActive(false);
}
}
}
Помогите пожалуйста
Голосование за лучший ответ
Steam Accounts1 Мастер (1350) 1 год назад
Вам нужно удалить точку с запятой после объявления класса

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

public class Playeer : MonoBehaviour
{
public GameObject UIElement;
public float RayLenght;
public Text UIText;

private void Update()
{
if (Input.GetKeyDown(KeyCode.E) && UIElement.activeSelf == false)
{
Ray _ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0));
RaycastHit _hit;

if (Physics.Raycast(_ray, out _hit, RayLenght))
{
if (_hit.collider.gameObject.GetComponent())
{
UIElement.SetActive(true);
UIText.text = _hit.collider.gameObject.GetComponent().Text;
}
}
}
else if (Input.GetKeyDown(KeyCode.E) && UIElement.activeSelf == true ||
Input.GetKeyDown(KeyCode.Escape) && UIElement.activeSelf == true)
{
UIElement.SetActive(false);
}
}
}
ggg1wsw fdЗнаток (258) 1 год назад
все равно
Can't add script component 'Playeer' because the script class cannot be found. Make sure that there are no compile errors and that the file name and class name match.
что делать ?
Steam Accounts1 Мастер (1350) ggg1wsw fd, Если вы уверены, что код скопирован без ошибок и имя файла сценария соответствует имени класса в скрипте, а проблема все равно не устраняется, есть несколько шагов, которые вы можете предпринять: 1. **Проверьте расположение скрипта:** Убедитесь, что файл скрипта находится в правильной папке в проекте Unity. Он должен находиться в папке `Assets`, чтобы Unity мог найти его автоматически. 2. **Имя файла и класса:** Убедитесь, что имя файла скрипта точно соответствует имени класса внутри него. Если имя класса `Playeer`, то имя файла скрипта должно быть точно таким же (с расширением `.cs`). 3. **Пересборка проекта:** Попробуйте пересобрать проект, чтобы убедиться, что все изменения в коде скрипта сохранены и скомпилированы. Это можно сделать через меню `Assets > Rebuild Pro
S.H.I. Оракул (74283) 1 год назад
Вот исправленный вариант скрипта:
 using System.Collections; 
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Playeer : MonoBehaviour
{
public GameObject UIElement;

public float RayLenght;

public Text UIText;

private void Update()
{

if (Input.GetKeyDown(KeyCode.E) && UIElement.activeSelf == false)
{

Ray _ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0));
RaycastHit _hit;

if (Physics.Raycast(_ray, out _hit, RayLenght))
{
if (_hit.collider.gameObject.GetComponent())
{

UIElement.SetActive(true);

UIText.text = _hit.collider.gameObject.GetComponent().Text;
}
}
}

else if (Input.GetKeyDown(KeyCode.E) && UIElement.activeSelf == true || Input.GetKeyDown(KeyCode.Escape) && UIElement.activeSelf == true)
{
UIElement.SetActive(false);
}
}
}

Проверьте также, соответствует ли имя файла имени класса, то есть класс Playeer должен находиться в файле Playeer.cs.
ggg1wsw fdЗнаток (258) 1 год назад
Can't add script component 'Playeer' because the script class cannot be found. Make sure that there are no compile errors and that the file name and class name match.
Название проверил
скрипт в нужной папке, все равно что-то не так :(
S.H.I. Оракул (74283) ggg1wsw fd, Если вы уверены, что имя файла и имя класса совпадают, и что скрипт находится в правильной папке, то проблема может быть связана с ошибками компиляции. Откройте окно консоли в Unity (Window>General>Console) и проверьте, есть ли там какие-либо ошибки компиляции. Если есть, исправьте их, и вы должны быть в состоянии добавить скрипт. Если у вас нет ошибок компиляции, попробуйте перезапустить редактор Unity или повторно импортировать все.
ggg1wsw fdЗнаток (258) 1 год назад

Ошибок много
S.H.I. Оракул (74283) ggg1wsw fd, Ошибки связаны с коллизией пространства имен и членов. Это означает, что в вашем коде есть два или более класса или переменные с одинаковыми именами в одном и том же пространстве имен. Чтобы исправить эту проблему, вам необходимо найти и переименовать дублирующиеся классы или переменные, чтобы у каждого из них было уникальное имя.
ggg1wsw fdЗнаток (258) 1 год назад
Хорошо, спасибо.
Похожие вопросы