C # 대신 Unity와 함께 C ++를 사용할 수 있습니까?


답변:


23

Unity Pro 라이센스가 있으면 작업하기가 더 쉽지만 C ++을 Free 버전의 Unity와 함께 사용할 수 있습니다. DLL로 감싸서 아래 지침에 따라 배치하십시오.

이 주제를 다루는 기사를 작성했습니다 .C # (관리) 및 C ++ (비 관리)

Unity 4 Free의 경우 :

  • 관리되지 않는 코드를 Unity 프로젝트 루트에 추가하십시오 : UnityProject
  • 플러그인 폴더에 관리 코드를 추가하십시오 UnityProject.->Plugins
  • 프로젝트를 빌드 할 때 관리되지 않는 코드를 BuildRoot-> Data->Plugins

Unity 4 Pro 및 Unity 5의 경우 :

  • DLL을 UnityProject->에 복사하십시오.Plugins

관리되지 않음은 C ++을 의미하고 관리 형은 C #을 의미


1
무료 버전에는 프로 버전의 모든 엔진 기능이 포함되어있는 Unity 5에서도 변경 되었습니까?
GeekyMonkey

1
@GeekyMonkey 기사와 답변을 업데이트했습니다.
MLM

Unity3D 컨텍스트에서 C #을 C ++로 바꾸려고 시도하는 것은 의미가 없습니다. 이 답변은 기본 코드와의 인터페이스를 요청한 경우 도움이 될 수 있습니다.
aggsol

1
새로운 IL2C ++ 기술을 사용하면 C # 대신 C ++를 사용해야하는 많은 이유가 없습니다. 현재는 모바일 플랫폼으로 제한되어 있지만 곧 PC에서이 기술을 사용할 수있을 것으로 기대합니다.
JPtheK9

1
@ user2023370 의견을 보내 주셔서 감사합니다. :)
MLM

1

불편하지만 가능합니다. 이를 달성하기 위해 관리되는 C ++를 작성해야합니다. 그리고 그렇습니다. 관리되는 C ++과 같은 것이 있습니다. 관리 형은 C # 및 관리되지 않는 C ++을 구체적으로 의미하지 않습니다. 이를 위해서는 UnityEngine DLL 파일을 가져와야합니다. 완료되면 (Unity Project Name) / Plugins 폴더에 넣습니다. 사용하는 코드는 다음과 같습니다. C ++ 파일에서 :

public ref class CPPUNITY {
  public:
     void Start() {
         Debug::Log("C++ printed message");
     }

};

C # 파일에서 :

     using UnityEngine;
     public class FileName {
         void Start() {
              CPPUNITY.Start();
         }
     }

정확한 코드는 작동하지 않지만 기본입니다.


Unity에서 사용 된 모노 런타임은 최종적으로 혼합 모드 어셈블리를 지원합니까? 우리는 몇 년 전에 VS 2012의 4 및 어셈블리에 대해 운이 없었으므로 이것이 정말 좋을 것입니다!
Oliver
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.