inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Listener

안녕하세요. static 질문요

242

acts

작성한 질문수 3

2

제가 왕초보라.. 좀 헷갈려서여...
유니티에서 코드 짤때는 static을 메니저같은곳.. 싱글톤 같은곳에서... 쓰고 웬만해선 잘 안쓰는 거로 아는데
 
서버편같이 유니티말고 그냥 코드 짤때는 static을 웬만한곳에 다 붙이던데.. 다른 경우인가여?
 
static Listener _listener = new Listener();
이경우에도 유니티같은경우 static을 안 쓸텐데
여기서는 안쓰니까 에러가 나더라고요..
 
static void Main(string[] args){}
이런식으로 메인에도 static이 있고...
 
유니티에서 코드 짜는거랑 걍 c#이랑 좀 다른건가여?
 
 
 
 

C# unity network

답변 1

2

Rookiss

그 부분이 처음에는 엄청 헷갈리긴 합니다.
우선 static 관련 아래 링크 참고 바랍니다.
https://www.inflearn.com/questions/97965

static은 [위치상으로 class 안에 있지만, 사실 class 설계 자체와는 무관하다]고 이해하면 됩니다.
어떤 함수가 static이라면, 특정 객체에 종속적이지 않은 함수라 볼 수 있는데,
이 때문에 static이 아닌 멤버 변수에 접근할 수 없습니다. (어떤 객체인지를 애당초 모르므로)
그래서 한 마디로 [static 함수 내부에선 static 멤버 변수에만 접근 가능하다]고 이해하면 되고,
static이 아닌 변수에 접근하려면 해당 객체를 직접 만들어서 사용해야 합니다. 

static void Main()
{
   Program p = new Program();
    p.스태틱아닌변수 = 3; //<< 이런 식으로 static 아닌 변수 사용 가능
   
   Knight k = new Knight();
    k.hp = 3; // << 이런 식으로 static 아닌 변수 사용 가능 
}

기본적으로 콘솔 프로그램에선 static void Main으로 메인함수가 무조건 static이기 때문에,
내부에서 static 변수를 만들어야 동일하게 static인 Main 함수에서 사용 가능합니다.
유니티랑 일반 C#이 다른건 당연히 아니구요. 유니티에서도 static 함수를 만들었다면,
내부적으로는 static 멤버변수를 활용해야 합니다.

C#에서의 RAII

0

62

3

TLS 질문드립니다.

0

79

2

SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.

0

74

2

Unity Span

0

97

2

XML, Dll 차이점

0

134

2

Session 질문입니다

0

95

1

Write Read 커서 키워드

0

87

1

더미 클라이언트 수에 따른 OnDisconnect 발생

0

85

2

네트워크 Send 전담 스레드 배치

0

111

2

UnhandledException 으로 서버 터지는 경우

0

102

2

컨텐츠 단, 엔진 단

0

118

1

질문 있습니다

0

92

2

C# 게임서버 3D MMORPG

0

159

2

유니티6 버전

0

104

2

receive하는 부분과 send하는 부분의 차이

0

152

2

커서의 위치의 중요성

0

110

2

C++ 전혀 모르는데 C# 서버

0

176

2

강의에 질문이 있습니다

0

92

2

멀티스레드 이해도 질문

0

106

1

500 vs 500

0

147

3

OnAcceptHandler 액션 함수

0

70

1

이 정도 서버의 객관적인 수준이 궁금합니다.

0

203

2

36. Serialization #3 에서 string (name) 코드 수정 질문

0

85

2

외부 컴퓨터와의 통신 방법이 궁금합니다

0

112

1