UnrealCS - Unity alike C# Plugin for Unreal Engine

This is the compiled version of unrealcs_v4.14.3_v1.0.zip. This matches the version on his forum as of 2/24/17. I assume he will update that file so I’ll try to remove/update this if he builds a new version.

EDIT: Link removed, use his releases. Releases · xiongfang/UnrealCS · GitHub

@Nate That worked thank you, I’m working on a video right now to show all of this working.

Video showing steps to get a shipping build

Note the compiled version only works with 4.14.3 and will not work with 4.15. I think it could be compiled to work for 4.15 but I had trouble compiling it.

Instructions to use Unreal CS here: Unreal CS - Google Docs

Thanks xiongfang for making this product.

Thanks, man! Appreciate your effort for this.

And Xiongfang for making it in the first place.

Cheers.

Got a question for anyone that can chime in on this. Would it be possible to make plugins with UnrealCS?

I hope that you fine folks will forgive my ignorance for asking this but could someone enlighten me as to why one would want to use C# to script for UE4?
I’m not trying to bash on C# or anything but it’s not that hard to make the switch back and forth between the two languages (for gameplay scripting purposes at any rate).
With C++ and Blueprints working so well I never find myself wishing that I had a C# scripting plugin when working in UE4 as opposed to the opposite when I’m working on a project for a client in Unity.

Some people are just used to C#, primarily from Unity.

Some find blueprints and C++ too far in different directions for either to be ideal for scripting.

I personally think there is a place for text based scripting on top of C++.

Some of us also have years invested in C# libraries that already do a lot of heavy lifting in our pipelines. Easing the bridge into the Engine, not just my DCC apps, would help.

In a short answer no. In a long answer, probably not unless it was directly embraced by Epic. As it stands to my understanding you make the code in C# by using blueprint actions then but that code stays C#. So you’ve got a C# layer of code making blueprint calls. These C# functions then can be seen in the editor.

However if you attempted to make the C# code and give it to someone without UnrealCS it would do nothing. Because of that a normal “plugin” would not work without the installation of UnrealCS. Maybe you could pack unrealCS and your code together to make a plugin but someone would need to investigate that. The code is open source (although I did not have luck compiling it) so in theory you could just build it into your system.

Hopefully the Mono version just works and Epic is willing to accept it into UE proper and it’s just a 3rd supported (c++, blueprint and C#) but I kind of doubt that will ever happen. It would however draw a decent % of Unity developers to the platform.

All, Xiongfang has made releases, please use those. I’ll remove the link from my post

Note: I have not tested, my steps might still be useful.

Mono will be a plugin. But I don’t see why it would be a problem to have a plugin for C#. Epic is going to refactor more and more featurs to be optional plugins. They have started with vehicle physics in 4.15.

Nate, is it possible to inherit from UObject?
UE collapsed after I added simple class to TestClass.cs

public class MyTestObject : UObject
{
public string text = “text”;
}

I have not been able to access unrealcs.com - is this a region block (for central EU) or the same for you guys?
Would be a shame if this plugin dies, there were at least 4 bigger projects which died after a time …

Get it off github. Don’t go to the site it’s not in english anyway.

@Beep2Bleep
I am trying to use a very simple c#.dll with the plugin. It has only one test function, but I always get an error message:

LogMono:Warning: Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly ‘DLLTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null’ or one of its dependencies.
File name: ‘DLLTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null’

Is it possible to use external DLLs with the plugin? If so, where should I place my dll ?

UPDATE: Seems like [FONT=Courier New]\Content\Scripts\framework\ does the trick. Unfortunately HOT reload doesn’t work so every time you want to update your DLLs, you need to quit from the editor, update the DLL and reopen your project.

Looks like the website is no longer supported. He does have launcher versions up through 4.15.1. I’m looking at working with it in 4.16 currently.

Indeed until Epic makes a proper C# interface that works with all components this or any C# plugin wont matter, a glued functionality that requires a lot of hacking around issues thats what these C# plugins are.

Would be great!

This is probably what Xamarin is working with Epic to fix for their C# plugin.

I really hope we can get some C# support for UE4 in the near future. My job requires me to use Unity 5 (which still isn’t bad imo) but I want to work with other engines and I simply dislike BluePrints.