[C#] Static 변수 / Static 함수 / Static 변수의 자기참조

2023. 8. 24. 15:08Unity

728x90
반응형
public class Test : MonoBehaviour
{
    public static int number;
    void Start()
    {
        Test.number = 20;
        print(Test.number);
        MyStaticFunc(10);
    }
    public static void MyStaticFunc(int a)
    {
        print(Test.number + a);
    }
}

static 변수 number를 생성하였고, static 함수 myStaticFunc()를 생성하였다.

(**static 함수 안에서는 멤버변수를 사용할 수 없고 함수 입력 인자, 함수 내부 변수 또는 static 변수가 들어가야 한다. 외부 변수는 class의 메모리에 생성되기 때문)

 

 


 

 

Static 변수의 자기참조

Public class ManagerScript : MonoBehaviour
{
    public static ManagerScript main;
    void Awake()
    {
        main = this;
    }
    public int ManagerAdd(int a, int b)
    {
    print("ManagerAdd");
    return a + b;
    }
}

하나의 스크립트에 static main 변수를 만들었고, 자기참조의 변수 this를 대입하였다. 이를 이용하여 다른 클래스에서 ManagerScript를 참조할 수 있다.

 

 

Public class PlayerScript : MonoBehaviour
{
    void Start()
    {
        int c = ManagerScript.main.ManagerAdd(10,20);
        print(c);
    }
}

다른 클래스에서 위와 같이 main 변수를 이용하여 ManagerScript.main.ManagerAdd를 함수를 바로 호출한다.

728x90
반응형