Unity3d Process Calls, Zipping, Command line and Window console Snippets

Recently being making a little utility app for transporting and playing local  html5/jquery based presentation from pc to ipad etc, below are some snippets of code for starting stopping other apps such as chrome browser, cmd.exe, I did these in xamarin/mono really easily however the transfer to  unity was a little taxing on the more involved processes, certainly adding /C before a command line argument was new to me, strangely. Below also includes some code for zipping files in unity3d using 7-zip of 7za.exe, although I’ve used internal .net libraries before sometime 7za for a unity windows stand alone solution is certainly quick and easy.

Unity3d/.Net c# code:-



By |August 27th, 2013|CodeBlog, Unity 3D|Comments Off on Unity3d Process Calls, Zipping, Command line and Window console Snippets

Remove Invalid Filename Path Characters

If you find yourself having to strip illegal chars from user input, as I have found myself doing on numerous occasions when dealing with files and directory paths in Unity, it is always a good idea to have a method/function handy and at the ready, there are of course many ways to do this and I know that some would lean towards Regex as I have also done in the past, but here’s my adapted unity 3d – c# .net offering that also does what it says on the tin.

Unity3d handle pre and post build ops

PostprocessBuildPlayer scripts do not fire on windows machines to date, and a pre process script for unity does not exist in the public domain, so here is an editor script which adds two custom buttons to your menu:- Custom Build, and Custom Build-Run. The purpose of this script is to allow you to handle any file copying or amendment to the build folder pre or post build automatically.

The script takes all the information required from the normal build window options into account, when executed manually it allows the user to choose a save path, it then fires a pre-process function before building and post process function after building and the build path is sent as a parameter, from within these functions you can call whatever you heart desires from c# file copying code to calling other applications and sending parameters alongside


By |November 11th, 2011|Unity 3D|4 Comments

Cartesian coordinate conversion Unity3d

In 3D, we have a total of 48 different combinations of space coordinates to choose from:-

2 handed (or single axis flipped) systems x 3 axis x 4 (90 degree possible rotations around each (generally)) x 2 (possible 2 flipped axis variations on the same hand same rotation) = 48 possibilities.

There are 6 ways to notate xyz in a file but this would essentially replicate one of the 48 possibilities simply converting it from one possibility to another.

The functions below will only cover converting the 6 basic types (2 handed (or single axis flipped) systems x 3 axis) to Y-Up Left Hand system used by unity, so discounting the one that unity uses equals five conversions & one non conversion, also presuming all notation is written x,y,z irrespective of direction.

By |July 6th, 2011|Unity 3D|Comments Off on Cartesian coordinate conversion Unity3d

Marquee / Rectangle GameObject Selection

I had queried this problem many times in the past but never needed to try and solve it until this week. The problem with selecting object/s via given screen rect coordinates within Unity is that if your camera’s view is not orthographic…which in most cases it isn’t, your rectangle, projected collision detection or raycast will need to take the form of a trapezoid shape i.e. matching the camera frustrum, fanning out from the screen rectangle.

You could create a mesh of this shape and try some sort of collision detection, but perhaps if you are using many mesh colliders this may not be an easy task and carry too much overhead.

Here are two pretty useful functions that will solve this task, both functions take two screen coordinates in the form of Vector3’s (as in Input.mousePosition), and an array of GameObjects to test against however they return different results:-

The first function returns an array of GameObjects where the center of the GO’s renderer bounds is within the camera projected rectangle/trapezoid – This method is probably only useful on small non-enclosed meshes however it does allow the user not to have to completely surround objects with the marquee.

The second function returns an array of GameObjects where the meshes local OBB points are within the camera projected rectangle – This method provides much more accuracy with selection however an objects bounds must be completely encompassed by the given screen rect.

By |July 5th, 2011|Unity 3D|Comments Off on Marquee / Rectangle GameObject Selection