Unity는 다른 버전의 C #을 사용합니까, 아니면 모두 동일합니까? 일반적인 C #과 다르게 보이지만 거기에는 일정한 C # 요소가 있습니다.
Unity는 다른 버전의 C #을 사용합니까, 아니면 모두 동일합니까? 일반적인 C #과 다르게 보이지만 거기에는 일정한 C # 요소가 있습니다.
답변:
다른 답변에서 언급했듯이 Unity 4.x는 Mono 2.6 기반 의 수정 된 버전의 Mono를 사용합니다.
Mono 2.6 관련 호환성 목록을 추적하지는 못했지만 대부분 .Net 2.0 과 호환됩니다.
일반적인 C #과 다르게 보이지만 거기에는 일정한 C # 요소가 있습니다.
귀하의 질문에 대한 의견 중 하나에서 언급했듯이 이는 언어 자체가 아닌 Unity의 특정 스크립팅 API 때문일 수 있습니다.
예를 들어, 일반적인 Unity 프로젝트의 많은 코드가 MonoBehavior라는 클래스의 하위 클래스에 포함되어 있습니다. Unity 에디터 환경에서 게임 오브젝트에 드롭되는 컴포넌트입니다. 이 아키텍처는 여러 가지 방법으로 일반적인 C # 코드와 다르게 보이는 C # 코드로 이어집니다.
실제로 Unity의 현재 C # 버전에서 놓친 가장 큰 C # 언어 기능은 비동기 및 관련 키워드 및 기능에 대한 지원입니다 . Unity의 비슷한 개념은 코 루틴 입니다. 이것들은 메인 스레드에서 실행되므로 진정한 비동기는 아니지만 오래 실행되는 코드가 여러 프레임에서 분리되도록합니다. 하위 레벨 멀티 스레딩은 여전히 지원됩니다.
async
C #에서는 멀티 스레드와 마찬가지로 비동기가 아닙니다. 메인 스레드에서도 실행됩니다. 사용 관점에서 코 루틴과 비동기의 가장 큰 차이점은 코드가 실행되는 시간입니다.
Unity 4 는 C # 언어를 포함하여 .NET 프레임 워크의 전체 구현 인 Mono 2.6을 사용 합니다.
어떻게 다른지 잘 모르겠지만 Unity는 여러 언어를 지원하며 모든 언어가 동일한 Mono 런타임에서 작동한다는 점을 명심하십시오. C #과 UnityScript를 혼동 할 수 있습니까?
Unity는 일반 C #을 사용합니다.
그런 다음 Unity에서 C #을 작성할 때 많은 라이브러리를 사용하지만, 아는 한 C #에서 가능한 모든 것은 아래 나열된 차이점을 제외하고 Unity에서 가능합니다.
Windows Forms 및 ASP와 관련된 .Net의보다 구체적인 영역은 Unity를 통해 제한되지 않습니다.
편집 및 컴파일 타임 오류에 Visual Studio를 사용할 수 있지만 Unity IDE에서 빌드하고 실행해야합니다.
Unity는 .Net의 오픈 소스 구현 인 Mono를 사용하므로 약간의 차이가 있습니다.
Unity에서 사용하는 C # 버전이 "일반"C #과 다른지 여부에 대한 질문은 다른 게시물에 의해 답변되었습니다. 명시 적으로 유니티의 특정 (높은 비주얼 스튜디오 2010, 즉 C # 4.0) 내가 직장에서 C # I 사용을 비교할 때 내가 발견하는 유일한 작은 차이를 공유하는 등 일반 버전과 다를 수 있습니다 요소와 C #을 요구하고 있기 때문에 어떤 함수 정의에서 매개 변수에 기본값을 사용할 수 없다는 것입니다. 최신 버전의 C #을 사용하려면 프로젝트를보다 신중하게 설정해야합니다. 자세한 설명 은 이 링크를 참조하십시오 .
편집 : 나는 이것이 많은 사람들에게 오해라는 것을 알고 있기 때문에이 대답을 남깁니다.