2013-03-21 2 views
1

iOS 용 Unity3D의 플러그인을 만들고 있습니다. 어떤 이유로 유니 코드 4.0 이전에 컴파일되고 네이티브 코드 (.mm의 .mm)에서 Unity3D 4.1 (포함) 이후에 컴파일되도록 코드를 지정해야합니다. 아마 이런 식으로 뭔가 :Xcode에서 Unity3D 엔진 버전을 구할 수 있습니까? 버전에 따라 조건부 컴파일을 수행하는 방법은 무엇입니까?

#if UNITY_VERSION < UNITY_4_1 
    //Some code be compiled before Unity4.1 
#else 
    //Some code for new version 
#endif 

내가 Unity3D 편집기에서 Platform Dependent Compilation가 알고 있지만, 어떻게 내가 엑스 코드에서 엔진의 버전을하고 "조건 컴파일을 기반으로 유니티 엔진 버전을"할 수 있습니까? 모든 제안을 주시면 감사하겠습니다!

편집 : 다른 버전의 .mm 파일을 두 개 작성하고 [PostProcessAttribute]에서 그 중 하나를 삭제할 수 있습니다. 그러나 나는 좋은 생각이라고 생각하지 않습니다 ...

답변

0

당신이하려는 일에 정확히 명확하지 않습니다. Unity가 만드는 XCode 프로젝트에 인젝션하여 네이티브 코드를 작성하고 있습니까? 아니면 빌드 도중 유니티에 포함 된 라이브러리에 네이티브 코드를 빌드하고 있습니까?

AFAIK XCode가 유니티의 설치를 검사하지 않고 사용하고있는 유니티의 버전을 미리 알 수 없으며이를 확인하는 방법을 찾지 못합니다.

후자를 수행하는 경우, 즉 Unity의 빌드에 포함 된 기본 코드 라이브러리를 작성하는 경우. 이 경우 두 개의 개별 라이브러리가 필요하며 사용자에게 관련성이 높은 것을 포함하도록 사용자에게 지시하십시오.

유니 코드가 만든 Xcode 프로젝트에 새로운 네이티브 코드를 삽입하는 경우 Unity는 #defines를 내 보내어 네이티브 코드를 컴파일해야하는 Unity 버전을 결정할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. Unity3D의 다른 버전에 의해 생성 된 코드는 동일하지 않습니다. 내 플러그인의 다른 코드를 작성하려면 Unity의 버전에 따라 다릅니다. 그래서 나는 두껍게 대답 할 때 후자의 경우입니다. 이제는 Unity의 두 버전간에 생성 된 코드의 차이를 사용하여이를 확인합니다. 다시 감사합니다. – onevcat

관련 문제