[Mono-ue] What to do when API not available ?

Michael Hutchinson m.j.hutchinson at gmail.com
Thu Nov 13 17:12:26 UTC 2014


Yes, it shouldn't be necessary to override BindInput. This happens
when hot reloading a subclass of an actor that has an input component
due to a missing check. Here's a fix:

https://gist.github.com/mhutch/9c79cda71e55a0b847c7

On 13 November 2014 11:54, Ali Scissons <ali.scissons at gmail.com> wrote:
> One or more of your classes isn't overriding BindInput(InputComponent
> inputComponent). I'm not sure its intended behavior that it requires to be
> overridden but that's the quickest way to fix it.
>
> The main problem is MonoClassAsset (or something?) trying to look for
> BindInput in a Mono class that would require a call to it because of hot
> reload, but it only seems to search for functions explicitly defined in the
> Mono class. I fixed it by having the function that searches for a mono
> method to search through parent classes too, though I'm not sure if that was
> intended. I can post a snippet of that change when I get home.
>
> Ali Scissons
> (210) 310-5618
>
> On Sun, Nov 9, 2014 at 5:24 PM, M S <stick100 at hotmail.com> wrote:
>>
>> Any one have any idea why I can't use hot reload.  If I rebuild while
>> simulating (doing exactly the samething as the video on the front page) I
>> get the following error.
>>
>> Running 4.4.3 patched as instructed and Xamarin studio.  The second I
>> rebuild UE editor pauses then throws an exception.
>>
>> Assertion failed: BindInputMethod
>> [File:C:\Users\Stick100\Documents\UnrealEngine\Engine\Plugins\XamarinUE4\MonoRuntime\Source\MonoRuntime\Private\MonoCompiledClassAsset.cpp]
>> [Line: 151]
>>
>> Stack:
>> FWindowsPlatformStackWalk::StackWalkAndDump() 0x34363046 + 0 bytes
>> [File=c:\users\stick100\documents\unrealengine\engine\source\runtime\core\private\windows\windowsplatformstackwalk.cpp:177]
>> [in
>> C:\Users\Stick100\Documents\UnrealEngine\Engine\Binaries\Win64\UE4Editor-Core.dll]
>> FDebug::AssertFailed() 0x341e8445 + 0 bytes
>> [File=c:\users\stick100\documents\unrealengine\engine\source\runtime\core\private\misc\outputdevice.cpp:203]
>> [in
>> C:\Users\Stick100\Documents\UnrealEngine\Engine\Binaries\Win64\UE4Editor-Core.dll]
>> FMonoCompiledClassAsset::InvokeBindInput() 0x23ecf84d + 0 bytes
>> [File=c:\users\stick100\documents\unrealengine\engine\plugins\xamarinue4\monoruntime\source\monoruntime\private\monocompiledclassasset.cpp:153]
>> [in
>> C:\Users\Stick100\Documents\UnrealEngine\Engine\Plugins\XamarinUE4\MonoRuntime\Binaries\Win64\UE4Editor-MonoRuntime.dll]
>> FMonoBindings::EndReload() 0x23ec0f9e + 0 bytes
>> [File=c:\users\stick100\documents\unrealengine\engine\plugins\xamarinue4\monoruntime\source\monoruntime\private\monobindings.cpp:664]
>> [in
>> C:\Users\Stick100\Documents\UnrealEngine\Engine\Plugins\XamarinUE4\MonoRuntime\Binaries\Win64\UE4Editor-MonoRuntime.dll]
>> FMonoBindings::ReloadDomain() 0x23ee00b1 + 0 bytes
>> [File=c:\users\stick100\documents\unrealengine\engine\plugins\xamarinue4\monoruntime\source\monoruntime\private\monobindings.cpp:503]
>> [in
>> C:\Users\Stick100\Documents\UnrealEngine\Engine\Plugins\XamarinUE4\MonoRuntime\Binaries\Win64\UE4Editor-MonoRuntime.dll]
>> FMonoBindings::ReloadDomainCommand() 0x23ee0219 + 5 bytes
>> [File=c:\users\stick100\documents\unrealengine\engine\plugins\xamarinue4\monoruntime\source\monoruntime\private\monobindings.cpp:831]
>> [in
>> C:\Users\Stick100\Documents\UnrealEngine\Engine\Plugins\XamarinUE4\MonoRuntime\Binaries\Win64\UE4Editor-MonoRuntime.dll]
>>
>> TBaseRawMethodDelegateInstance_NoParams<FMonoBindings,void>::ExecuteIfSafe()
>> 0x23ec13ba + 0 bytes
>> [File=c:\users\stick100\documents\unrealengine\engine\source\runtime\core\public\delegates\delegateinstancesimpl.inl:359]
>> [in
>> C:\Users\Stick100\Documents\UnrealEngine\Engine\Plugins\XamarinUE4\MonoRuntime\Binaries\Win64\UE4Editor-MonoRuntime.dll]
>> FConsoleCommand::Execute() 0x340fc19b + 29 bytes
>> [File=c:\users\stick100\documents\unrealengine\engine\source\runtime\core\private\hal\consolemanager.cpp:474]
>> [in
>> C:\Users\Stick100\Documents\UnrealEngine\Engine\Binaries\Win64\UE4Editor-Core.dll]
>> FConsoleManager::ProcessUserConsoleInput() 0x341275b2 + 51 bytes
>> [File=c:\users\stick100\documents\unrealengine\engine\source\runtime\core\private\hal\consolemanager.cpp:828]
>> [in
>> C:\Users\Stick100\Documents\UnrealEngine\Engine\Binaries\Win64\UE4Editor-Core.dll]
>> UEngine::Exec() 0x2e21c13a + 94 bytes
>> [File=c:\users\stick100\documents\unrealengine\engine\source\runtime\engine\private\unrealengine.cpp:2455]
>> [in
>> C:\Users\Stick100\Documents\UnrealEngine\Engine\Binaries\Win64\UE4Editor-Engine.dll]
>> UEditorEngine::Exec() 0x2ca2934e + 18 bytes
>> [File=c:\users\stick100\documents\unrealengine\engine\source\editor\unrealed\private\editorserver.cpp:5266]
>> [in
>> C:\Users\Stick100\Documents\UnrealEngine\Engine\Binaries\Win64\UE4Editor-UnrealEd.dll]
>> UUnrealEdEngine::Exec() 0x2cd25230 + 17 bytes
>> [File=c:\users\stick100\documents\unrealengine\engine\source\editor\unrealed\private\unrealedsrv.cpp:704]
>> [in
>> C:\Users\Stick100\Documents\UnrealEngine\Engine\Binaries\Win64\UE4Editor-UnrealEd.dll]
>> UGameViewportClient::Exec() 0x2dcfcd03 + 28 bytes
>> [File=c:\users\stick100\documents\unrealengine\engine\source\runtime\engine\private\gameviewportclient.cpp:1874]
>> [in
>> C:\Users\Stick100\Documents\UnrealEngine\Engine\Binaries\Win64\UE4Editor-Engine.dll]
>> ULocalPlayer::Exec() 0x2de99d4a + 29 bytes
>> [File=c:\users\stick100\documents\unrealengine\engine\source\runtime\engine\private\localplayer.cpp:1469]
>> [in
>> C:\Users\Stick100\Documents\UnrealEngine\Engine\Binaries\Win64\UE4Editor-Engine.dll]
>> UEngine::TickDeferredCommands() 0x2e25
>>
>>
>> _______________________________________________
>> Mono-ue mailing list
>> Mono-ue at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-ue
>>
>



-- 
Michael Hutchinson ~ https://mhut.ch


More information about the Mono-ue mailing list