|
Unity Мультиплатформенный инструмент для разработки игр |
20.01.2017, 09:39
|
#1
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 422
Написано 68 полезных сообщений (для 100 пользователей)
|
Динамическая подгрузка скриптов C# eval
Можно ли динамический из файла подгрузить скрипт на c#. Что-то вроде Eval в Java. Будет ли код иметь доступ к другим классам. Кто-нибудь пробовал так делать?
Прмер в тему, но не на mono:
http://stackoverflow.com/questions/5...on-dynamically
|
(Offline)
|
|
20.01.2017, 10:18
|
#2
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 422
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: Динамическая подгрузка скриптов C# eval
Eval работает. Использовал данный пример:
https://forum.unity3d.com/threads/mo...luator.102162/
На androide Наверно работать не будет.
|
(Offline)
|
|
20.01.2017, 11:29
|
#3
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Динамическая подгрузка скриптов C# eval
На андроиде может и будет, но точно не на iOS.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.01.2017, 11:33
|
#4
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 422
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: Динамическая подгрузка скриптов C# eval
Сообщение от pax
На андроиде может и будет, но точно не на iOS.
|
Чтобы пример работал, нужно cкопировать Mono.CSharp.dll в папку Plugins... Я не уверен что она совместима с android... Хотя может она на каком-то универсальном байт коде написанна.
Как-то давно делал данный трюк на Java через Eval. Было занятно, пишешь код в телефоне, и в сцене создаются объекты. В общем можно ИИ писать и т.д. Но сейчас мой проект на Си. Поэтому приходится изворачиваться. Или делать смешанный проект основной код на Си, ИИ на Java. Но тут я не знаю будет ли доступ из Eval в переменные классов C#, а он нужен.
|
(Offline)
|
|
20.01.2017, 11:53
|
#5
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Динамическая подгрузка скриптов C# eval
Сообщение от pax
На андроиде может и будет, но точно не на iOS.
|
Если illCpp, то везде работать не будет.
pax, юзал CloudBuild?Это нормально, что если поставить метод сборки для Android ill2cpp, то он не собирается?
Просто хотел проверить насколько он быстрее был бы
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.01.2017, 15:03
|
#6
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Динамическая подгрузка скриптов C# eval
Сообщение от RegIon
Если illCpp, то везде работать не будет.
|
Хорошее замечание.
Сообщение от RegIon
pax, юзал CloudBuild?Это нормально, что если поставить метод сборки для Android ill2cpp, то он не собирается?
Просто хотел проверить насколько он быстрее был бы
|
Нет не юзал еще. Ну и не думаю, что будет сильно отличаться от соотношения скоростей билда на своем компе.
|
(Offline)
|
|
20.01.2017, 15:08
|
#7
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Динамическая подгрузка скриптов C# eval
Сообщение от pax
Нет не юзал еще. Ну и не думаю, что будет сильно отличаться от соотношения скоростей билда на своем компе.
|
Да я просто хотел разгрузить комп, так как трансляция что-то довольно долго происходит.
Да и NDK весит 3GB
pax, вот я вот попытался нативку собрать, 20 минут ждал и получил CrashBuildError. Причину не нашел.
Log:
(Filename: /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs Line: 222)
Invoking UnusedByteCodeStripper2 with arguments: --api NET_2_0 -out "D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\assets\bin\Data\Managed\tempStrip" -l none -c link -b False -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\Core.xml" -f "D:\programs\Unity5.5\Editor\Data\il2cpp\LinkerDescriptors" -x "D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\assets\bin\Data\Managed\..\platform_native_link.xml" -x "D:\_eX_\NaZakaz\CircleRun/Temp/StagingArea\assets\bin\Data/methods_pointedto_by_uievents.xml" -x "D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\assets\bin\Data\preserved_derived_types.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\AI.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\Animation.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\Audio.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\Cloth.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\Core.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\CrashReporting.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\IMGUI.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\JSONSerialize.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\ParticlesLegacy.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\ParticleSystem.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\Physics.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\Physics2D.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\Terrain.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\TerrainPhysics.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\TextRendering.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\UI.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\UNET.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\UnityAds.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\UnityAnalytics.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\UnityConnect.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\UnityWebRequest.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\Vehicles.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\VR.xml" -x "D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\Web.xml" -d "D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\assets\bin\Data\Managed" -a "D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\assets\bin\Data\Managed\Assembly-CSharp.dll" -a "D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\assets\bin\Data\Managed\UnityEngine.UI.dll"
D:\programs\Unity5.5\Editor\Data\Tools/UnusedByteCodeStripper2/UnusedBytecodeStripper2.exe exited after 2527 ms.
D:\programs\Unity5.5\Editor\Data\Tools/InternalCallRegistrationWriter/InternalCallRegistrationWriter.exe exited after 344 ms.
Invoking il2cpp with arguments: --convert-to-cpp --emit-null-checks --enable-array-bounds-check --compile-cpp --libil2cpp-static --platform="Android" --architecture="ARMv7" --configuration="Release" --outputpath="D:\_eX_\NaZakaz\CircleRun\Temp/StagingArea\assets\bin\Data\Native\armeabi-v7a\libil2cpp.so" --cachedirectory="D:\_eX_\NaZakaz\CircleRun\Assets\..\Library\il2cpp_android_armeabi-v7a/il2cpp_cache" --additional-include-directories="D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\bdwgc/include" --additional-include-directories="D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\libil2cpp/include" --tool-chain-path="C:/android-ndk-r10e-windows-x86_64/android-ndk-r10e" --extra-types.file="D:\programs\Unity5.5\Editor\Data\il2cpp\il2cpp_default_extra_types.txt" --assembly="D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\assets\bin\Data\Managed\Assembly-CSharp.dll" --assembly="D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\assets\bin\Data\Managed\UnityEngine.UI.dll" --assembly="D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\assets\bin\Data\Managed\UnityEngine.dll" --generatedcppdir="D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\Il2Cpp\il2cppOutput"
D:\programs\Unity5.5\Editor\Data\il2cpp/build/il2cpp.exe exited after 530476 ms.
Failed running D:\programs\Unity5.5\Editor\Data\il2cpp/build/il2cpp.exe --convert-to-cpp --emit-null-checks --enable-array-bounds-check --compile-cpp --libil2cpp-static --platform="Android" --architecture="ARMv7" --configuration="Release" --outputpath="D:\_eX_\NaZakaz\CircleRun\Temp/StagingArea\assets\bin\Data\Native\armeabi-v7a\libil2cpp.so" --cachedirectory="D:\_eX_\NaZakaz\CircleRun\Assets\..\Library\il2cpp_android_armeabi-v7a/il2cpp_cache" --additional-include-directories="D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\bdwgc/include" --additional-include-directories="D:\programs\Unity5.5\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\libil2cpp/include" --tool-chain-path="C:/android-ndk-r10e-windows-x86_64/android-ndk-r10e" --extra-types.file="D:\programs\Unity5.5\Editor\Data\il2cpp\il2cpp_default_extra_types.txt" --assembly="D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\assets\bin\Data\Managed\Assembly-CSharp.dll" --assembly="D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\assets\bin\Data\Managed\UnityEngine.UI.dll" --assembly="D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\assets\bin\Data\Managed\UnityEngine.dll" --generatedcppdir="D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\Il2Cpp\il2cppOutput"
stdout:
Building libil2cpp.so with AndroidToolChain.
Output directory: D:\_eX_\NaZakaz\CircleRun\Temp\StagingArea\assets\bin\Data\Native\armeabi-v7a
Cache directory: D:\_eX_\NaZakaz\CircleRun\Library\il2cpp_android_armeabi-v7a\il2cpp_cache
ObjectFiles: 454 of which compiled: 87
Time Compile: 90186 milliseconds Bulk_mscorlib_7.cpp
Time Compile: 80841 milliseconds Il2CppAttributes.cpp
Time Compile: 79546 milliseconds Bulk_Generics_6.cpp
Time Compile: 70556 milliseconds Il2CppInvokerTable.cpp
Time Compile: 66459 milliseconds Bulk_mscorlib_1.cpp
Time Compile: 60135 milliseconds Bulk_System.Xml_1.cpp
Time Compile: 59347 milliseconds Bulk_System_2.cpp
Time Compile: 58874 milliseconds Bulk_UnityEngine.UI_0.cpp
Time Compile: 55040 milliseconds Bulk_System.Xml_2.cpp
Time Compile: 52270 milliseconds Bulk_mscorlib_8.cpp
Total compilation time: 435554 milliseconds.
il2cpp.exe didn't catch exception: Unity.IL2CPP.Building.BuilderFailedException: @"C:\Users\eXponenta\AppData\Local\Temp\tmpFAE6.tmp" -o "D:\_eX_\NaZakaz\CircleRun\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\linkresult_A61B2CB66E9E64B415900878F23D91C6\libil2cpp.so" -Wl,-soname,libil2cpp.so -shared -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id --sysroot "C:\android-ndk-r10e-windows-x86_64\android-ndk-r10e\platforms\android-9\arch-arm" -gcc-toolchain "C:\android-ndk-r10e-windows-x86_64\android-ndk-r10e\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64" -target armv7-none-linux-androideabi -L "C:\android-ndk-r10e-windows-x86_64\android-ndk-r10e\sources\cxx-stl\gnu-libstdc++\4.9\libs\armeabi-v7a" -lgnustl_static -fuse-ld=gold
at Unity.IL2CPP.Building.CppProgramBuilder.PostprocessObjectFiles(IEnumerable`1 objectFiles, CppToolChainContext toolChainContext)
at Unity.IL2CPP.Building.CppProgramBuilder.Build()
at il2cpp.Program.DoRun(String[] args)
at il2cpp.Program.Run(String[] args)
at il2cpp.Program.Main(String[] args)
stderr:
Unhandled Exception: Unity.IL2CPP.Building.BuilderFailedException: @"C:\Users\eXponenta\AppData\Local\Temp\tmpFAE6.tmp" -o "D:\_eX_\NaZakaz\CircleRun\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\linkresult_A61B2CB66E9E64B415900878F23D91C6\libil2cpp.so" -Wl,-soname,libil2cpp.so -shared -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id --sysroot "C:\android-ndk-r10e-windows-x86_64\android-ndk-r10e\platforms\android-9\arch-arm" -gcc-toolchain "C:\android-ndk-r10e-windows-x86_64\android-ndk-r10e\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64" -target armv7-none-linux-androideabi -L "C:\android-ndk-r10e-windows-x86_64\android-ndk-r10e\sources\cxx-stl\gnu-libstdc++\4.9\libs\armeabi-v7a" -lgnustl_static -fuse-ld=gold
at Unity.IL2CPP.Building.CppProgramBuilder.PostprocessObjectFiles(IEnumerable`1 objectFiles, CppToolChainContext toolChainContext)
at Unity.IL2CPP.Building.CppProgramBuilder.Build()
at il2cpp.Program.DoRun(String[] args)
at il2cpp.Program.Run(String[] args)
at il2cpp.Program.Main(String[] args)
UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogError(Object)
UnityEditorInternal.Runner:RunManagedProgram(String, String, String, CompilerOutputParserBase, Action`1) (at C:\buildslave\unity\build\Editor\Mono\BuildPipeline\BuildUtils.cs:96)
UnityEditorInternal.IL2CPPBuilder:RunIl2CppWithArguments(List`1, Action`1, String) (at C:\buildslave\unity\build\Editor\Mono\BuildPipeline\Il2Cpp\IL2CPPUtils.cs:281)
UnityEditorInternal.IL2CPPBuilder:ConvertPlayerDlltoCpp(ICollection`1, String, String) (at C:\buildslave\unity\build\Editor\Mono\BuildPipeline\Il2Cpp\IL2CPPUtils.cs:272)
UnityEditorInternal.IL2CPPBuilder:Run() (at C:\buildslave\unity\build\Editor\Mono\BuildPipeline\Il2Cpp\IL2CPPUtils.cs:126)
UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, String, IIl2CppPlatformProvider, Action`1, RuntimeClassRegistry, Boolean) (at C:\buildslave\unity\build\Editor\Mono\BuildPipeline\Il2Cpp\IL2CPPUtils.cs:32)
UnityEditor.Android.PostProcessor.Tasks.RunIl2Cpp:Execute(PostProcessorContext)
UnityEditor.Android.PostProcessor.PostProcessRunner:RunAllTasks(PostProcessorContext)
UnityEditor.Android.PostProcessAndroidPlayer:PostProcess(BuildTarget, String, String, String, String, String, String, BuildOptions, RuntimeClassRegistry)
UnityEditor.Android.AndroidBuildPostprocessor:PostProcess(BuildPostProcessArgs)
UnityEditor.PostprocessBuildPlayer:Postprocess(BuildTarget, String, String, String, Int32, Int32, String, String, BuildOptions, RuntimeClassRegistry, BuildReport) (at C:\buildslave\unity\build\Editor\Mono\BuildPipeline\PostprocessBuildPlayer.cs:186)
UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck(String[], String, String, BuildTarget, BuildOptions, Boolean)
UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions, Boolean) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:464)
UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:321)
UnityEditor.BuildPlayerWindow:GUIBuildButtons(IBuildWindowExtension, Boolean, Boolean, Boolean, BuildPlatform) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:1364)
UnityEditor.BuildPlayerWindow:ShowBuildTargetSettings() (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:1291)
UnityEditor.BuildPlayerWindow:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:887)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
System.Reflection.MethodBase:Invoke(Object, Object[]) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
UnityEditor.HostView:Invoke(String, Object) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:249)
UnityEditor.HostView:Invoke(String) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:242)
UnityEditor.HostView:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:76)
(Filename: /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs Line: 222)
Exception: D:\programs\Unity5.5\Editor\Data\il2cpp/build/il2cpp.exe did not run properly!
at UnityEditorInternal.Runner.RunManagedProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser, System.Action`1 setupStartInfo) [0x00170] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\BuildUtils.cs:98
at UnityEditorInternal.IL2CPPBuilder.RunIl2CppWithArguments (System.Collections.Generic.List`1 arguments, System.Action`1 setupStartInfo, System.String workingDirectory) [0x0004a] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\Il2Cpp\IL2CPPUtils.cs:281
at UnityEditorInternal.IL2CPPBuilder.ConvertPlayerDlltoCpp (ICollection`1 userAssemblies, System.String outputDirectory, System.String workingDirectory) [0x00267] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\Il2Cpp\IL2CPPUtils.cs:272
at UnityEditorInternal.IL2CPPBuilder.Run () [0x00099] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\Il2Cpp\IL2CPPUtils.cs:126
at UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, IIl2CppPlatformProvider platformProvider, System.Action`1 modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry, Boolean developmentBuild) [0x00010] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\Il2Cpp\IL2CPPUtils.cs:32
at UnityEditor.Android.PostProcessor.Tasks.RunIl2Cpp.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) [0x00000] in <filename unknown>:0
at UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) [0x00000] in <filename unknown>:0
at UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry) [0x00000] in <filename unknown>:0
at UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (BuildPostProcessArgs args) [0x00000] in <filename unknown>:0
at UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.BuildReporting.BuildReport report) [0x000d4] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\PostprocessBuildPlayer.cs:186
UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck(String[], String, String, BuildTarget, BuildOptions, Boolean)
UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions, Boolean) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:464)
UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:321)
UnityEditor.BuildPlayerWindow:GUIBuildButtons(IBuildWindowExtension, Boolean, Boolean, Boolean, BuildPlatform) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:1364)
UnityEditor.BuildPlayerWindow:ShowBuildTargetSettings() (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:1291)
UnityEditor.BuildPlayerWindow:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:887)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
System.Reflection.MethodBase:Invoke(Object, Object[]) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
UnityEditor.HostView:Invoke(String, Object) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:249)
UnityEditor.HostView:Invoke(String) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:242)
UnityEditor.HostView:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:76)
(Filename: C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs Line: 98)
Exception: D:\programs\Unity5.5\Editor\Data\il2cpp/build/il2cpp.exe did not run properly!
at UnityEditorInternal.Runner.RunManagedProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser, System.Action`1 setupStartInfo) [0x00170] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\BuildUtils.cs:98
at UnityEditorInternal.IL2CPPBuilder.RunIl2CppWithArguments (System.Collections.Generic.List`1 arguments, System.Action`1 setupStartInfo, System.String workingDirectory) [0x0004a] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\Il2Cpp\IL2CPPUtils.cs:281
at UnityEditorInternal.IL2CPPBuilder.ConvertPlayerDlltoCpp (ICollection`1 userAssemblies, System.String outputDirectory, System.String workingDirectory) [0x00267] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\Il2Cpp\IL2CPPUtils.cs:272
at UnityEditorInternal.IL2CPPBuilder.Run () [0x00099] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\Il2Cpp\IL2CPPUtils.cs:126
at UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, IIl2CppPlatformProvider platformProvider, System.Action`1 modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry, Boolean developmentBuild) [0x00010] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\Il2Cpp\IL2CPPUtils.cs:32
at UnityEditor.Android.PostProcessor.Tasks.RunIl2Cpp.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) [0x00000] in <filename unknown>:0
at UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) [0x00000] in <filename unknown>:0
at UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry) [0x00000] in <filename unknown>:0
at UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (BuildPostProcessArgs args) [0x00000] in <filename unknown>:0
at UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.BuildReporting.BuildReport report) [0x000d4] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\PostprocessBuildPlayer.cs:186
UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck(String[], String, String, BuildTarget, BuildOptions, Boolean)
UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions, Boolean) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:464)
UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:321)
UnityEditor.BuildPlayerWindow:GUIBuildButtons(IBuildWindowExtension, Boolean, Boolean, Boolean, BuildPlatform) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:1364)
UnityEditor.BuildPlayerWindow:ShowBuildTargetSettings() (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:1291)
UnityEditor.BuildPlayerWindow:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:887)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
System.Reflection.MethodBase:Invoke(Object, Object[]) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
UnityEditor.HostView:Invoke(String, Object) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:249)
UnityEditor.HostView:Invoke(String) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:242)
UnityEditor.HostView:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:76)
(Filename: C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs Line: 98)
Последний раз редактировалось RegIon, 20.01.2017 в 16:58.
|
(Offline)
|
|
20.01.2017, 21:31
|
#8
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Динамическая подгрузка скриптов C# eval
Я с андроидом особо не развлекался еще, особенно с нативом. Так что помочь с этим не могу.
|
(Offline)
|
|
06.02.2017, 16:31
|
#9
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 422
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: Динамическая подгрузка скриптов C# eval
Есть некий Mono.CSharp.Evaluator позволяет выполнять C# код. Вот примерчик. Штука интересная, на android пока не пробовал.
using UnityEngine;
using System.Collections;
using Mono.CSharp;
using System;
public class EvalManager : MonoBehaviour
{
public static EvalManager instance;
string cmd = "for(int i=0;i<50;i++){\r\n" +
"GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);\r\n" +
"cube.transform.position = new Vector3(Random.Range(0,90), Random.Range(0,90), 2);\r\n" +
"cube.transform.rotation = Quaternion.Euler(Random.Range(0,90),Random.Range(0,90),Random.Range(0,90));\r\n" +
"}\r\n" +
"Log.Print(\"Test\",true);";
void Awake ()
{
instance = this;
}
void Start ()
{
int cnt = 0;
while (cnt < 2) {
// this needs to be run twice, as the references fail the first time through
foreach (System.Reflection.Assembly assembly in AppDomain.CurrentDomain.GetAssemblies()) {
if (assembly == null) {
Debug.Log ("Null Assembly");
continue;
}
Debug.Log (assembly);
try {
Mono.CSharp.Evaluator.ReferenceAssembly (assembly);
} catch (NullReferenceException e) {
Debug.Log ("Bad Assembly");
}
}
Mono.CSharp.Evaluator.Evaluate ("1+2;");
cnt++;
}
Mono.CSharp.Evaluator.Run("using UnityEngine;");
Debug.Log (Mono.CSharp.Evaluator.GetUsing ());
}
public object Run (string cmd)
{
//Run executes the code, and returns true if it was succesful and false if it did not parse
// for example GameObject.Find("MyGameObject").transform.Translate( new Vector3(0, 2, 0));
Debug.Log ("Run:"+cmd);
object result = Mono.CSharp.Evaluator.Run (cmd);
Debug.Log ("Run Result:"+result);
return result;
}
public object Eval (string cmd)
{
// Evaluate requires a value as the last statement;
// So you can do "typeof(GameObject);", but not "var a = typeof(GameObject);"
Debug.Log ("Eval:"+cmd);
object result = Mono.CSharp.Evaluator.Evaluate (cmd);
Debug.Log ("Eval Result:"+result);
return result;
}
void OnGUI() {
int y = Screen.height - 120;
cmd = GUI.TextArea (new Rect (90, y, 500, 120), cmd);
if (GUI.Button (new Rect (10, y, 80, 20), "Eval:")) {
Eval (cmd);
}
if (GUI.Button (new Rect (10, y+20, 80, 20), "Run:")) {
Run (cmd);
}
}
}
Последний раз редактировалось Evgen, 06.02.2017 в 20:17.
|
(Offline)
|
|
06.02.2017, 20:20
|
#10
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 422
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: Динамическая подгрузка скриптов C# eval
Для работы нужна dll либа:
https://forum.unity3d.com/threads/mo...luator.102162/
На андроиде не работает.
И eval на андроиде вроде тоже не работает. Хотя раньше думал что работает...
|
(Offline)
|
|
23.12.2017, 21:40
|
#11
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 422
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: Динамическая подгрузка скриптов C# eval
P.S. Судя по ScriptingRestrictions Android если он Mono то должен поддерживать динамический Eval. А вот Android при IL2CPP поддерживает только Ahead-of-time compile.
|
(Offline)
|
|
24.12.2017, 09:10
|
#12
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Динамическая подгрузка скриптов C# eval
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
24.12.2017, 13:20
|
#13
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 422
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: Динамическая подгрузка скриптов C# eval
Ну значит все будет Ahead-of-time compile, кроме StandAlone.
|
(Offline)
|
|
24.12.2017, 15:21
|
#14
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Динамическая подгрузка скриптов C# eval
В стандалон оно тоже придет со временем, планы такие у Unity были. Просто в приоритете сейчас мобильные платформы.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:54.
|