#c# #unity3d
#c# #unity3d
Вопрос:
Я изучаю модификаторы доступа и наткнулся на следующую ошибку в своем коде. Может кто-нибудь объяснить мне и помочь решить эту проблему? Активы Тесты Скрипты modificadoracesso.cs(40,7): ошибка CS0101: пространство имен ‘< глобальное пространство имен >’ уже содержит определение для ‘Felino’
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class modificadoracesso : MonoBehaviour
{
Felino gatoFase1; // criar objeto
Felino gatoFase2;
Filha fi;
// Start is called before the first frame update
void Start()
{
gatoFase1 = new Felino (); //objeto
gatoFase2 = new Felino ();
fi = new Filha();
//gatoFase1.nome = "mark";
gatoFase1.ataque();
gatoFase1.corPelo = "Preto";
gatoFase1.forca = 100;
//gatoFase2.nome = "Zuck";
gatoFase2.corPelo = "Marrom";
gatoFase2.ataque();
fi.acessa();
}
// Update is called once per frame
void Update()
{
}
}
class Felino : MonoBehaviour
{
//Características = atributos
//protected trabalha dentro a classe ou dentro de uma classe filha
protected string nome;
public string corPelo;
public int forca;
//Ações = métodos
public void ataque()
{
print("Ataquei");
}
}
class Filha : Felino
{
public void acessa()
{
nome = "Gato";
}
}
Я искал некоторые ответы, но пока ничего не работает
Комментарии:
1. Часть глобального пространства имен связана с тем, что у вас нет пространства имен в вашем коде. Однако я не понимаю, почему у вас есть дубликат
Felino
.2. я бразилец, и я не понял предложение «пространство имен», может ли это показать мне практическим способом?
3. каким будет <глобальное пространство имен>?
Ответ №1:
Если класс не находится в пространстве имен, то класс должен находиться в ‘глобальном пространстве имен’. Добавьте пространство имен вокруг ваших классов. Я не говорю, что это полный ответ, но не использовать пространства имен — плохая идея. Пространства имен обычно начинаются с имени вашего решения и будут помещены туда автоматически при создании нового класса.
Попробуйте это:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace ToDyToScAnO // <-- This is a namespace
{
public class modificadoracesso : MonoBehaviour
{
Felino gatoFase1; // criar objeto
Felino gatoFase2;
Filha fi;
// Start is called before the first frame update
void Start()
{
gatoFase1 = new Felino (); //objeto
gatoFase2 = new Felino ();
fi = new Filha();
//gatoFase1.nome = "mark";
gatoFase1.ataque();
gatoFase1.corPelo = "Preto";
gatoFase1.forca = 100;
//gatoFase2.nome = "Zuck";
gatoFase2.corPelo = "Marrom";
gatoFase2.ataque();
fi.acessa();
}
// Update is called once per frame
void Update()
{
}
}
class Felino : MonoBehaviour
{
//Características = atributos
//protected trabalha dentro a classe ou dentro de uma classe filha
protected string nome;
public string corPelo;
public int forca;
//Ações = métodos
public void ataque()
{
print("Ataquei");
}
}
class Filha : Felino
{
public void acessa()
{
nome = "Gato";
}
}
}
Ответ №2:
Обычно это происходит, когда вы перетаскиваете скрипт в другую папку, в то время как в вашем текстовом редакторе скрипт все еще открыт. Когда вы сохраняете файл в текстовом редакторе, файл создается заново в старом расположении, поэтому у вас есть дубликат сценария для перемещенного сценария.
Ответ №3:
Это только потому, что у вас в проекте есть другой скрипт с таким именем! Возможно, вы случайно дублируете его или что-то в этомроде.