2012-04-27 2 views
1

인터넷에서 다운로드 한 다른 장면을로드 할 수있는 간단한 유니티 응용 프로그램을 만들었습니다. 장면에 스크립트가 포함되어 있지 않은 경우 효과적입니다. 그 장면은 별도의 응용 프로그램 스크립트가 문제없이 작동으로 시작되면Application.LoadLevel을 통해로드 된 장면의 스크립트가 작동하지 않습니다.

The class defined in script file named 'XXX' does not match the file name! 

하지만 장면 BuildPipeline.BuildStreamedSceneAssetBundle를 통해 저장하면 내가 설명있어 한 : 게임 오브젝트와 연결하는 스크립트가 있다면 그것은 오류와 함께 실패 오류.

나는 간단한 코드를 통해 장면을로드 : 나는 그것을 위해 DontDestroyOnLoad를 호출하기 때문에

WWW www = new WWW("file://" + file); 
    yield return www; 

    loadedBundle = www.assetBundle; 
    Application.LoadLevel(name); 

주요 스크립트는 장면에서 유지됩니다.

내가 Unity3D 3.5.0를 통해이 시나리오를 확인하고 내가 실수를 할 3.5.1

?

고마워요. 내 시나리오 당신은 자산 번들 스크립트를 포함 할 수 있습니다 정의

답변

1

불행하게도, 보안상의 이유로 자산 번들에서 Unity3D 블록 스크립트, 즉로드 자산 번들 및 자산 번들 및로드 프로젝트의 스크립트는 메타 파일을 공유해야합니다.

로드하는 동일한 프로젝트에서 애셋 번들을 빌드하는 경우이 작업은 자동으로 수행되어야합니다. 별도의 프로젝트를 사용하여 자산 번들을 빌드하는 경우 리비전 제어를 사용하여 이러한 스크립트가 동기화 상태를 유지하도록해야합니다.

+0

정말인가요? [documentation] (http://docs.unity3d.com/Documentation/Manual/scriptsinassetbundles.html)에는 Apple 제한 사항으로 인해 iOS를 제외하고 스크립트를 번들에 포함시키는 것이 좋습니다. –

+1

나는 확신한다. 스크립트는 바이트 코드로만 포함 할 수 있습니다. 다른 질문을 확인하십시오 : http://stackoverflow.com/questions/10808033/how-to-compile-unity3d-script-to-include-it-to-assetbundle –

0

가 작동하지 않습니다하지만 그들은 또한 프로젝트에 있어야하므로

관련 문제