C\#에서 Public 변 수 는 유 니 티 패 널 에 인식 되 지 않 는 솔 루 션 입 니 다.

근본 적 인 원인 은 유 니 티 패 널 에서 식별 할 수 있 는 변 수 는 Public 가 유일한 조건 이 아니 라 다른 조건 은 직렬 화 되 기 때문이다.
예 를 들 어 당신 은 다음 과 같은 종 류 를 성명 하 였 습 니 다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Wave
{
    public GameObject prefab;
    public int count;
    public float rate;
}
다른 클래스 에서 설명 할 때 다음 과 같 습 니 다.

public Wave[] waves;
이렇게 하면 유 니 티 패 널 에서 자 연 스 럽 게 볼 수 없습니다.왜냐하면 당신 이 마음대로 성명 한 클래스 는 자서 열화 클래스 를 계승 하지 않 았 기 때 문 입 니 다.
성명 상속 만 있 으 면 됩 니 다.아래 와 같 습 니 다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[System.Serializable]
public class Wave
{
    public GameObject prefab;
    public int count;
    public float rate;
}
추가:C\#클래스 수정자 Public 와 internal
네 임 스페이스 에 클래스 를 만 들 었 을 때 기본 수식 기 호 는 internal 입 니 다.
역할:
현재 네 임 스페이스 에서 클래스 호출 을 실현 할 수 있 습 니 다.
클래스 의 수정자 가 Public 일 때 이 종 류 는 현재 네 임 스페이스 뿐만 아니 라 다른 네 임 스페이스 에서 도 호출 될 수 있 음 을 나타 낸다.예:

using system;
using ...;
namespace s1
{
 internal class A
 {
  ....
 }
        class B
        {
           A a=new A();//ok
        }
}
그러나 다음 코드 는 오 류 를 알려 줍 니 다.

using system;
using ...; 
namespace s1
{
 internal class A
 {
  ....
 }
        
}
  
using system;
using ...;
using s1;
namespace s2
{
    class B
    {
       A a=new A();//error,as A is an internal which can only be called in its packet
     }
}
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기