I am studying access modifiers and I came across the following error in my code. Can someone explain to me and help me solve it? Assets\\Testes\\Scripts\\modificadoracesso.cs(40
Unless a class is in a namespace, the class it in the 'global namespace'. Add a namespace around your classes. I'm not saying this is the complete answer, but not using namespaces is a bad idea. Namespaces usually start with the name of your solution and will be placed there automatically when you create a new class.
Try this:
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";
}
}
}