네이티브 플러그인 내에서 리소스 (텍스트 파일, 텍스처 등)를 어떻게로드합니까? 내가 Resources.Load()의 모노 호출을 구현하려고 시도하는 중이지만,이 작업에서 반환 될 Object를 처리하는 방법이 확실하지 않습니다 (성공했다고 가정). 어떤 도움을 크게 주신 것입니다 :).네이티브 플러그인에서 리소스로드 (Unity)
답변
플러그인이 네이티브 파일 시스템에서 직접 리소스를로드하는 Unity 지원 방법은 이러한 리소스를 프로젝트의 "StreamingAssets"폴더에 배치하는 것입니다. Unity 기반 응용 프로그램이 설치되면이 폴더의 내용이 기본 파일 시스템에 복사됩니다 (Android 제외, 아래 참조). 네이티브 측에서이 폴더의 경로는 플랫폼마다 다릅니다. 그들이 .JAR의 압축을 해제하여 액세스 할 수 있지만
유니티 4.x 버전에서이상이 경로는 안드로이드에 당신이 StreamingAssets에 배치 파일은 .jar 파일로 패키징받을 것을 사용할 수
Application.streamingAssetsPath;
같은 주이며, 파일. Application.dataPath + "/StreamingAssets"
- 모든 플랫폼 :
Application.dataPath + "/Raw"
- 안드로이드 다음의 경로를 다음과 같이 유니티 V3.0의에서
, 수동으로 직접 경로를 구성해야 .JAR은 다음과 같습니다
012 : 여기
"jar:file://" + Application.dataPath + "!/assets/"
내가이 문제를 처리하는 데 사용되는 조각이다
Android의 경우 2.2 이하는 큰 .jar (일반적으로 1MB 이상)를 직접 압축 해제 할 수 없으므로 가장자리 케이스로 처리해야합니다.
참고 : http://unity3d.com/support/documentation/Manual/StreamingAssets.html 플러스 http://answers.unity3d.com/questions/126578/how-do-i-get-into-my-streamingassets-folder-from-t.html 및 http://answers.unity3d.com/questions/176129/accessing-game-files-in-xcode-project.html
감사합니다. 이렇게하면 문제가 해결됩니다. :) – hatboyzero
Unity의 최신 버전은 http://docs.unity3d.com/Documentation/ScriptReference/Application-streamingAssetsPath.html을 통해 경로를 반환 할 수 있습니다. – ftvs
감사합니다. 덕분에 많은 도움을 얻었습니다. –
나는 사물의 기본 측면과 관련이 질문에 대한 답을 제공하고자합니다.
아이폰 OS
당신이 그렇게 같은 네이티브 측면에 StreamingAssets 경로로 얻을 수있는 정말 - 그것은 아주 간단합니다
내가 사용 좋아하지 않는
NSString* bundlePath = [[NSBundle mainBundle] bundlePath];
NSString* streamingAssetsPath = [NSString stringWithFormat:@"%@/Data/Raw/", bundlePath];
안드로이드 Android에서 스트리밍 자산, IMO에 대한 모든 파일을 복사하는 지저분한 솔루션입니다. 플러그인 디렉토리에있는 docs에 정의 된 디렉토리 구조를 작성하면 더 깔끔하게 정리할 수 있습니다.
은 그래서 예를 들어 이미지는 유니티 프로젝트에서이 같은 위치 할 수있다 :
Assets/Plugins/Android/res/drawable/image.png
그런 다음, 안드로이드에 당신이 이런 식의 리소스 ID에 액세스 할 수 있습니다
Context context = (Context)UnityPlayer.currentActivity;
String packageName = context.getPackageName();
int imageResourceId = context.getResources().getIdentifier("image", "drawable", packageName);
거기에서 다른 모든 것들을 어떻게 다룰 지 당신에게 달려 있습니다!희망이 도움 :
- 1. 다른 플러그인에서 DLL과 네이티브 호출을 분리하십시오.
- 2. 순수 C 플러그인에서 Unity C# 스크립트로 복잡한 데이터 유형 전달
- 3. 다른 APK에서 동적 리소스로드
- 4. Assetic을 사용하여 조건부로 리소스로드
- 5. C# DLL (ResourceManager) 리소스로드
- 6. CBitMap에 png 리소스로드
- 7. JavaFX 외부 리소스로드 문제
- 8. jar 애플릿 외부로 리소스로드
- 9. 실행 가능한 jar에 리소스로드
- 10. Android hdpi 리소스로드 문제
- 11. NSBundle을 사용하여 리소스로드
- 12. Spinner 변경시 다른 strings.xml 리소스로드
- 13. 웹 응용 프로그램의 항아리에서 리소스로드
- 14. websphere 애플리케이션 서버에서 스프링으로 리소스로드
- 15. Windows 7에 내장 된 리소스로드
- 16. 웹 브라우저 리소스로드 순서 영향
- 17. 방법 : mdpi 시스템에 hdpi 리소스로드
- 18. SharePoint 사용자 컨트롤에 잘못된 리소스로드
- 19. NServiceBus가있는 Unity
- 20. ASP.NET과 Unity
- 21. 웹 사이트에서 iOS 앱 리소스로드 중
- 22. WEB-INF 폴더 아래에 리소스로드 중
- 23. 서블릿에서 Java 코드를 실행하기 전에 리소스로드
- 24. Cocoa/C++에서 상대 경로를 사용하여 리소스로드
- 25. WPF 컨트롤의 성능 향상 리소스로드 중
- 26. NullPointerException과 함께 컨텍스트 로더를 사용하여 리소스로드 실패
- 27. Cocoa - 기본 번들 이외의 리소스에서 리소스로드
- 28. Eclipse, Java Jar 내보내기, 리소스로드 안함
- 29. 어떤 리소스가 nl.siegmann.epublib에서 가져온 비트 맵에 리소스로드
- 30. (모바일) 캐시 매니페스트에도 불구하고 Safari로 리소스로드
Hmh, 네이티브 플러그인은 iOS 나 Android 같은 플랫폼을 의미합니다 ... 아니면 내가 오해 했습니까? – Kay
아니요, 올바르게 읽었지만 PC와 OSX도 포함되어 있습니다. – hatboyzero