By: Iain Brazendale
Daden U days give me the opportunity to
play with ideas that have been floating around at the back of my mind for some
time and this Daden U day was no exception.
I’ve been reading good things about the
changes Microsoft have been doing to their .NET complier platform “Roslyn”
particularly with regards to adding scripting support. It was this combined
with thoughts of how we could easily add additional functionality to Fieldscapes
that made me decide it was time to take a deeper look at scripting.
The advantage of scripting provided through
.NET compiler is that there’s no need to learn yet another scripting language,
scripts are simply written in C# but with looser syntax requirements.
This article gives a great technical
introduction to the subject: https://blogs.msdn.microsoft.com/cdndevs/2015/12/01/adding-c-scripting-to-your-development-arsenal-part-1/
Following the article quickly gave me a
rough working console application to do some testing with:
This example shows accessing an array containing the names of images for different days of the week. The third query to me shows the real power of the script – here the day of the week becomes the index into the images and returns the correct images for the day of the week (You guessed it – I ran this example on a Tuesday). The ability to show a different image for each day of the week is not something that is ever likely to be baked into Fieldscapes, however, adding scripting support allows this new functionality to be added with a single line of script.
This example below shows how picking of
images at random can be achieved.
However, with great power comes great
responsibility… if we let users add their own scripts then they could take
advantage:
Here we can see that users may access functionality that wasn’t intended, in this case displaying inappropriate messages. Also of note, as you can see from my several attempts to get the syntax right (C# is case sensitive), it could be fiddly for people to write scripts without the use of a good IDE correcting those minor typos. These issues suggest that scripting is something that should initially be left to the “advanced” users and more thought and design will be needed before it becomes a “typical” user feature.
So, when will scripting be added
Fieldscapes? Unfortunately, scripting requires .NET 4.6 and Roslyn. Unity still
uses .NET 3.5 with a non-Roslyn compiler so as wonderful as this technology
looks it won’t be a scripting solution for Fieldscapes until the tech catches
up. However, it could be a useful technology for Daden’s other products such as
Datascape.