Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для компьютеров > Unity

Unity Мультиплатформенный инструмент для разработки игр

Ответ
 
Опции темы
Старый 20.01.2017, 06:39   #1
Evgen
Знающий
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow capital of Earth! :)
Сообщений: 280
Написано 36 полезных сообщений
(для 49 пользователей)
Сообщение Динамическая подгрузка скриптов C# eval

Можно ли динамический из файла подгрузить скрипт на c#. Что-то вроде Eval в Java. Будет ли код иметь доступ к другим классам. Кто-нибудь пробовал так делать?

Прмер в тему, но не на mono:
http://stackoverflow.com/questions/5...on-dynamically
(Offline)
 
Ответить с цитированием
Старый 20.01.2017, 07:18   #2
Evgen
Знающий
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow capital of Earth! :)
Сообщений: 280
Написано 36 полезных сообщений
(для 49 пользователей)
Ответ: Динамическая подгрузка скриптов C# eval

Eval работает. Использовал данный пример:
https://forum.unity3d.com/threads/mo...luator.102162/

На androide Наверно работать не будет.
(Offline)
 
Ответить с цитированием
Старый 20.01.2017, 08:29   #3
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,505
Написано 2,960 полезных сообщений
(для 5,247 пользователей)
Ответ: Динамическая подгрузка скриптов C# eval

На андроиде может и будет, но точно не на iOS.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Evgen (20.01.2017)
Старый 20.01.2017, 08:33   #4
Evgen
Знающий
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow capital of Earth! :)
Сообщений: 280
Написано 36 полезных сообщений
(для 49 пользователей)
Ответ: Динамическая подгрузка скриптов C# eval

Сообщение от pax Посмотреть сообщение
На андроиде может и будет, но точно не на iOS.
Чтобы пример работал, нужно cкопировать Mono.CSharp.dll в папку Plugins... Я не уверен что она совместима с android... Хотя может она на каком-то универсальном байт коде написанна.

Как-то давно делал данный трюк на Java через Eval. Было занятно, пишешь код в телефоне, и в сцене создаются объекты. В общем можно ИИ писать и т.д. Но сейчас мой проект на Си. Поэтому приходится изворачиваться. Или делать смешанный проект основной код на Си, ИИ на Java. Но тут я не знаю будет ли доступ из Eval в переменные классов C#, а он нужен.
(Offline)
 
Ответить с цитированием
Старый 20.01.2017, 08:53   #5
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Динамическая подгрузка скриптов C# eval

Сообщение от pax Посмотреть сообщение
На андроиде может и будет, но точно не на iOS.
Если illCpp, то везде работать не будет.

pax, юзал CloudBuild?Это нормально, что если поставить метод сборки для Android ill2cpp, то он не собирается?
Просто хотел проверить насколько он быстрее был бы
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (20.01.2017)
Старый 20.01.2017, 12:03   #6
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,505
Написано 2,960 полезных сообщений
(для 5,247 пользователей)
Ответ: Динамическая подгрузка скриптов C# eval

Сообщение от RegIon Посмотреть сообщение
Если illCpp, то везде работать не будет.
Хорошее замечание.

Сообщение от RegIon Посмотреть сообщение
pax, юзал CloudBuild?Это нормально, что если поставить метод сборки для Android ill2cpp, то он не собирается?
Просто хотел проверить насколько он быстрее был бы
Нет не юзал еще. Ну и не думаю, что будет сильно отличаться от соотношения скоростей билда на своем компе.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 20.01.2017, 12:08   #7
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 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)
__________________
Сайт: http://iexpo.ml

Последний раз редактировалось RegIon, 20.01.2017 в 13:58.
(Offline)
 
Ответить с цитированием
Старый 20.01.2017, 18:31   #8
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,505
Написано 2,960 полезных сообщений
(для 5,247 пользователей)
Ответ: Динамическая подгрузка скриптов C# eval

Я с андроидом особо не развлекался еще, особенно с нативом. Так что помочь с этим не могу.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 06.02.2017, 13:31   #9
Evgen
Знающий
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow capital of Earth! :)
Сообщений: 280
Написано 36 полезных сообщений
(для 49 пользователей)
Ответ: Динамическая подгрузка скриптов 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 в 17:17.
(Offline)
 
Ответить с цитированием
Старый 06.02.2017, 17:20   #10
Evgen
Знающий
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow capital of Earth! :)
Сообщений: 280
Написано 36 полезных сообщений
(для 49 пользователей)
Ответ: Динамическая подгрузка скриптов C# eval

Для работы нужна dll либа:
https://forum.unity3d.com/threads/mo...luator.102162/

На андроиде не работает.

И eval на андроиде вроде тоже не работает. Хотя раньше думал что работает...
(Offline)
 
Ответить с цитированием
Старый 23.12.2017, 18:40   #11
Evgen
Знающий
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow capital of Earth! :)
Сообщений: 280
Написано 36 полезных сообщений
(для 49 пользователей)
Ответ: Динамическая подгрузка скриптов C# eval

P.S. Судя по ScriptingRestrictions Android если он Mono то должен поддерживать динамический Eval. А вот Android при IL2CPP поддерживает только Ahead-of-time compile.
(Offline)
 
Ответить с цитированием
Старый 24.12.2017, 06:10   #12
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,505
Написано 2,960 полезных сообщений
(для 5,247 пользователей)
Ответ: Динамическая подгрузка скриптов C# eval

а через год будет только il2cpp
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
Антихрист (24.12.2017), St_AnGer (24.12.2017)
Старый 24.12.2017, 10:20   #13
Evgen
Знающий
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow capital of Earth! :)
Сообщений: 280
Написано 36 полезных сообщений
(для 49 пользователей)
Ответ: Динамическая подгрузка скриптов C# eval

Ну значит все будет Ahead-of-time compile, кроме StandAlone.
(Offline)
 
Ответить с цитированием
Старый 24.12.2017, 12:21   #14
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,505
Написано 2,960 полезных сообщений
(для 5,247 пользователей)
Ответ: Динамическая подгрузка скриптов C# eval

В стандалон оно тоже придет со временем, планы такие у Unity были. Просто в приоритете сейчас мобильные платформы.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 17:24.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com