(19/02/2013) At this moment I am currently wavering on whether to use the built in GUIStyle that Unity offers with it's CSS like transformation tools or to import my own images that I've created with Photoshop. This link details the various properties that GUIStyle offers, at a first glance it does seem attractive however at this stage I am worrying about button animation (e.g. drop-shadow). If I am unable to re-create the desired affects I want in order to display a Button being selected and clicked on, I may have to resort to importing images for each instance. Additionally, my design requires for part of the button to have a large circle with an image inside next to the associated text, with the default GUIStyle that Unity offers I don't think that this affect is achieveable.
Click this link to view an image of the Menu with the default button style.
Tomorrow (first day back from Half Term), I'm going to design my Menu in Adobe Photoshop and attempt to import the default buttons into Unity at College.
Screen Resolution
(20/02/2013) It seems that finding some code that can automatically change the size of the controls and GUI layout itself depending on the aspect ratio is quite hard. After trawling around the Unity forums and Google for the good part of a few hours I've finally decided to design my Interactive Sound Toy for a specific resolution. I've chosen this because I do believe Unity doesn't have the capability for major varying screen sizes. I have come across some solutions such as "Orientation Control" however I personally am not willing to dish out money for a Student project that is to be completely in 3 weeks. Another solution I found was using a GUI matrix to rescale it for the screen size. At this moment this method does work in some manners, however I'm not entirely sure how this will function if I was to have a large number of different controls on my screen (e.g. designing the game page).
I think at this stage I'm going to focus on designing for a specific ratio as going too far into changing the resolution is going stray me off my goals and aims for this unit.
(20/02/2013) I think I've finally decided that I'll use percentages to calculate where to position my controls for my GUI. I know that the final product will lack a scaling functionality but by using percentages instead of integers the position of the elements will be some-what relative to the screen none-the-less.
In the video below is a quick scaling text, obviously the controls themself don't scale, but I've managed to keep the positioning of these elements relative to the screen size. The code below the video is what I used to do this.
I have considered using Screen.width and Screen.height in the size however it seems the font size in the stylisation just gets cropped out. Perhaps using a different method of stylisation can mean I can actually scale my controls.
Camera Control
Been researching for the past hour or 2 on various camera rotation scripts, managed to find an improved version of the default one that is supplied in the standard assets. This one not only rotates fully around a gameobject but can also zoom in and out with limitations. However though if I am to match what I've planned I must make the camera only rotate around the object when I'm clicking down the middle mouse button, because I want to use the code that I've found I'm going to use the Unity Forums to ask my question.
A design feature that I may be changing at this stage however is the position of the cube when the level is loaded. It might be better if the GUI buttons were put further to the side and the object itself centered in the middle, this can help with visibility when zooming in and out.
One last script I've added today was something I was researching yesterday, as I was unable to find a desired texture for my background yesterday I'm deciding to use a solid colour. However though this script I've found here, allows me to add a simple gradient to my background.
Spacing out Selectable Dots and Bugs
(27/02/2013) Luckily instead of using Mograph in Cinema 4D and cloning a sphere to be imported into Unity, I've managed to space out multiple sphere gameobjects. By spacing each object by around 0.33 I've been able to fit a 5 by 5 by 5 cube of small spheres. I plan for each one of these spheres to instigate an expanding sphere which I'll hopefully work on tomorrow. However, by placing these spheres inside the cube a bug has occurred which automatically zooms in when I rotate around a certain area, hopefully by consulting with my tutor and the Unity forums tomorrow I can fix this error.
RayCasting
(03/03/2013) A few days ago I managed to place all of the Selectable dots around my cube in the manner that was most desired. However though the colliders for the Holding Box stopped the user from clicking on one of the dots to spawn a sphere, therefore I needed to use raycasting. At first I managed to easily write out a Raycast and draw it so I could see where it was going although at first it was still hitting the box before the dots. I therefore put the Holding Box on a different layer and told the raycast to ignore all gameobjects that are on that specific layer. The code I used is in the image below.
Til this date I've managed to use a raycast to get through the box and reach all of the 125 dots successfully, baring in mind though other issues have occured. For example I was originally using a prefab for each of the selectable dots but whenever I would click on them it would execute the code for every single dot in the cube. To counter this, I deleted the prefab and had to figure out how to excute the code on a dot that has been hit by the raycast, this brought me to Unity Answers. Hopefully come Monday or Tuesday I'll be able to get to college and try out the code the friendly community users have suggested and get my spawning properly working.
http://answers.unity3d.com/questions/409005/if-raycast-hits-me.html
Finished the Info Page!
Today I've managed to finally complete the Information page. Overall, it consists of one button for the escape to Menu Page and various gui.layout text-areas and boxs for information and images. Here is the finished product below(all with Gui.Layout; meaning no gameobjects needing to be rendered!).