From Unify Community Wiki
Revision as of 09:55, 13 July 2010 by ZairaSimon (Talk | contribs)

Jump to: navigation, search



This script can be attached to a camera to provide some basic minimap functionality such as zooming and a full-screen toggle. It should be noted that this was developed to work in combination with a standard TPS view and AI pathfinder, so if you wish to use it in other contexts, it will require some tweaking.

Developed by stringbot. Feel free to update/improve/fix the code and add yourself to this line.


This script should be attached to a Camera GameObject. After this, the correct values need to be set in the inspector. You'll also need to configure two inputs: a "MinimapToggle" button and a "Mouse Wheel" axis. casino deutschland

  • Target: The object to track.
  • Scroll Sensitivity: How fast to move in and out whilst zooming.
  • Max Height: How high the camera can go above the target.
  • Min Height: The closest that the camera can get to the target.
  • Rotate With Target: Should the map rotate when the target does?


None that I'm aware of. Feel free to correct me here!

JavaScript - MinimapCamera.js

<javascript>// Target for the minimap. var target : GameObject;

// Default height to view from. private var height = 30;

// Is the map currently open? static var mapOpen = false;

// How much should we move for each small movement on the mouse wheel? var scrollSensitivity = 3;

// Maximum and minimum heights that the camera can reach. var maxHeight = 80; var minHeight = 5;

// Should the minimap rotate with the player? var rotateWithTarget = true;

function Start() {

   Screen.lockCursor = true;
   height = PlayerPrefs.GetInt("MinimapCameraHeight");


// Where the action is :D function Update () {

   // If the minimap button is pressed then toggle the map state.
   if(Input.GetButtonDown("MinimapToggle")) {
   // Update the transformation of the camera as per the target's position.
   transform.position.x = target.transform.position.x;
   transform.position.z = target.transform.position.z;
   // For this, we add the predefined (but variable, see below) height var.
   transform.position.y = target.transform.position.y + height;        
   // If the minimap should rotate as the target does, the rotateWithTarget var should be true.
   // An extra catch because rotation with the fullscreen map is a bit weird.
   if(rotateWithTarget && !mapOpen) {
       transform.eulerAngles.y = target.transform.eulerAngles.y;
   // Get the movement of the mouse wheel as an axis. 
   // Needs configuring in your project's input setup.
   var mw : float = Input.GetAxis("Mouse Wheel");
   // If the value is positive, add the height as defined by the sensitivity.
   // Also, save the height to player prefs in both cases with the call to saveHeight().
   if(mw > 0 && height < maxHeight) {
       height += scrollSensitivity;
   // Opposite for negative, just sub the value instead.
   else if(mw < 0 && height > minHeight) {
       height -= scrollSensitivity;


// Function to open/close the minimap. function toggleMinimap() {

   if(!mapOpen) {
       // Set the camera to use the entire screen.
       camera.rect = Rect (0,0,1,1);
       // Update the global so other scripts can know.
       mapOpen = true;
       // Unlock the cursor for proper point/click navigation.
       Screen.lockCursor = false;
       // Update the relevant PlayerPref key, could be useful for persistence.
   else {
       // Set the camera to use a small portion of the screen.
       camera.rect = Rect (0.8,0.8,1,1);
       // Update the global so other scripts can know.
       mapOpen = false;
       // Lock the cursor for TPS control.
       Screen.lockCursor = true;
       // Update the relevant PlayerPref key, could be useful for persistence.
   // Debug print the current state of the map.
   print("mapOpen = " + mapOpen);


// Method to store the height of the camera as a PlayerPref. function saveHeight() {



Personal tools