Attaching graphics to side of screen?

Hi guys, got an issue that I can’t think how to solve (and Google’s no help).

I’ve got a released mobile game created with unity that we wish to deploy to web and distribute to various flash game portals (Unity Web Player). The game we’ve made is a portrait style game, which doesn’t usually fit well with the standard ‘almost-square’ landscape flash games on these sites.

I’ve been asked to add a banner to the side of the screen to make the game more square and also serve as advertising for the mobile versions of the same game, just like Miniclip.com’s Rail Rush (link here) has done.

The underlying problem is that the game’s already been made - and all the menu’s programmed, and the banner on the side needs to be there at all times. This would usually mean a complete re-program of all the menus (very bad) to account for the banner, but it would also mean shifting the main worlds 3D camera over on an offset to account for it as well.

Is there any easy’ish’ fix to tack some sort of clickable banner on to the side of the game without having to completely re-program the graphics system to build it into the menus/hud? I’ve been looking into multiple cameras to no avail, as I’m new to manipulating cameras/render outputs. I’m thinking that I should somehow render the main camera to a certain area of the screen and render the banner to where it should be, but I’ve got no idea to be honest.

Could anyone shed some light on potential solutions?

(Yes I’m using Unity Pro)

Edit: Been looking at using Normalized View Port Rect options but since I’m using Unity GUI, this means only the 3D view is affected, and not the menus/HUD.

You can use GUI.matrix to squish your existing GUI to the correct area, then draw the new banner at the end of the GUI call.

[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]] is the default matrix. It’s been ages since I touched the things, unfortunately, so I can’t remember how scaling works. I’m tempted to say that if you change the first element to [0.5,0,0,0], you’ll squish the gui to 50% size on the X axis.

Edit: I love Unity.

GUI.matrix = Matrix4x4.Scale( Vector3(0.5, 1, 1) );

Can you make the screen bigger have the banner on a separate camera on the side and the normal game on a camera that is set to take up the original screen res?

I think that’s possible but no unity on hand to check.

Brilliant - thanks for the response guys!