I finally had some time to release a more complete version of Qute Configurer. This is a simple but extremely useful utility for anyone who wishes to develop in Unreal Engine using Qt Creator as their IDE.
The GitHub link can be found here, complete with source-code and binaries: https://github.com/Zoodinger/QuteConfigurer/releases/tag/v0.2.2
This application is based on the guide that can be found here: https://wiki.unrealengine.com/Using_QtCreator_With_UnrealEngine4
A full tutorial is embedded in the executable which explains how to set up Qt Creator, complete with both text and pictures. After this is finished, the user can simply choose to generate the appropriate Qt project files required for editing, building, and running their projects.
The project is open-source, and I would be delighted if other people contributed. Unfortunately, the current version only supports Windows. I don’t know if it’d be possible to make it work in Mac.
ScriptableObjects become (unfortunately) necessary when you start developing editor tools. That, and every other class that inherits from
UnityEngine.Object, has the unique ability to maintain proper references after deserialization. Every other class creates a copy per reference (as if it were a struct) after deserialization, which can be very troublesome.
One of the least pleasant aspects of ScriptableObject is that you cannot control their instantiation. Using their constructor to create them does not work as expected. The only proper way to create a ScriptableObject from scratch is to call the
ScriptableObject.CreateInstance<DerivedType>() static method, where
DerivedType is a type which derives from
ScriptableObject. Unfortunately, This method does not take any parameters. I will show you an easy way to help control their instantiation, so that the users of your ScriptableObject classes will be less prone to use them incorrectly.
C# Properties are one of the nicer features of C#, but there are things to keep in mind when using them in Unity. The framework doesn’t seem to like them too much. I will show you what the Unity-specific problems on using properties are and how to easily address them.
I love C#. I’m not necessarily a fan of Microsoft or any company; I just think that, as a language, it’s far better than Java, its older cousin. Don’t get me wrong, I know that there is not one language to rule them all, and that it’s more about the framework and not the language. But, from a purely language feature point of view, C# is clearly much more expressive (unless you are biased against Microsoft) and it manages to combine multiple programming paradigms pretty well without being a mess (C++, I’m looking at you).
The LINQ library is one of its strongest features, but it wouldn’t be as amazing without the special keyword
yield which it uses internally. I will show you how to use that to do fun stuff in C#, and how Unity takes advantage of its power to run co-routines.