Scripts

From Unify Community Wiki
(Difference between revisions)
Jump to: navigation, search
m (Spacing adjusted for some level 1 headings)
m (Minor layout change, some rewording)
Line 1: Line 1:
 +
{| align="right"
 +
  | __TOC__
 +
  |}
 +
 
= General =
 
= General =
  
 
== General Concepts ==
 
== General Concepts ==
  
*[[AManagerClass]] - example on how to add easy access to a singleton class in a scene.
+
*[[AManagerClass]] - How to add easy access to a singleton class in a scene.
*[[BasicDataStructures]] - discussion on the use of the data-structures available in unity.
+
*[[BasicDataStructures]] - Discussion of the use of the data-structures available in Unity.
*[[SimpleRegex]] - example of how one might use regular expressions in Unity to do something useful.
+
*[[SimpleRegex]] - How one might use regular expressions in Unity.
*[[ToggleGravity]] - example how to toggle a property, in this case the global gravity setting, by the left mouse button.
+
*[[ToggleGravity]] - How to toggle a property, in this case the global gravity setting, by the left mouse button.
  
 
== Utility Scripts ==
 
== Utility Scripts ==
  
*[[Angle]] - Helper class to work with angles
+
*[[Angle]] - Helper class to work with angles.
*[[CustomRandom]] - C# Random number generator, when you must have a random number generator that works on all platforms and runtimes .net runs on!
+
*[[CustomRandom]] - C# Random number generator, when you must have a random number generator that works the same way on all platforms!
*[[deepSearch]] - Searches recursively from the parent down
+
*[[deepSearch]] - Searches recursively from the parent down.
*[[ExpandoObject]] - Create ECMAScript-style expando objects in Unity Javascript
+
*[[ExpandoObject]] - Create ECMAScript-style expando objects in Unity Javascript.
 
*[[HexConverter]] - Functions for converting decimal colors to hexadecimal... and back.
 
*[[HexConverter]] - Functions for converting decimal colors to hexadecimal... and back.
 
*[[HSBColor]] - This utility script provides a HSB color model in addition to Unity's built in RGB Color class.
 
*[[HSBColor]] - This utility script provides a HSB color model in addition to Unity's built in RGB Color class.
 
*[[LABColor]] - This utility script provides an LAB color model in addition to Unity's built in RGB Color class.
 
*[[LABColor]] - This utility script provides an LAB color model in addition to Unity's built in RGB Color class.
*[[Layers]] - A utility script for holding easily-accessible layers and easily creating masks
+
*[[Layers]] - A utility script for holding easily-accessible layers and easily creating masks.
*[[Mathfx]] - This script contains a growing number of small and useful math functions. (Short for Mathf eXtended.)
+
*[[Mathfx]] - This script contains a growing number of small and useful math functions (short for Mathf eXtended).
*[[Matrix]] - A class for doing 3D matrix math against Vector3 objects
+
*[[Matrix]] - A class for doing 3D matrix math against Vector3 objects.
*[[MazeGenerator]] - Randomly generates a maze
+
*[[MazeGenerator]] - Randomly generates a maze.
*[[MD5]] - Generate an MD5 hash for a string
+
*[[MD5]] - Generate an MD5 hash for a string.
 
*[[MetadataSystem]] - Mechanism for ciphered, compressed preferences and declarative metadata system with runtime overrides.
 
*[[MetadataSystem]] - Mechanism for ciphered, compressed preferences and declarative metadata system with runtime overrides.
*[[MixupGO]] - Flatten GameObjects and all attached components into a single object using duck typing  in Unity Javascript
+
*[[MixupGO]] - Flatten GameObjects and all attached components into a single object using duck typing  in Unity Javascript.
*[[ObjExporter]] - A simple utility class for exporting a mesh to an obj file
+
*[[ObjExporter]] - A simple utility class for exporting a mesh to an obj file.
 
*[[PrintPolyCount]] - Prints total vertex and triangle count in the object hierarchy.
 
*[[PrintPolyCount]] - Prints total vertex and triangle count in the object hierarchy.
 
*[[Set]] - A set data structure.
 
*[[Set]] - A set data structure.
*[[Shell]] - A replacement for the built-in shell function removed from Unity 1.6.1
+
*[[Shell]] - A replacement for the built-in shell function removed from Unity 1.6.1.
 
*[[StringToValue]] - Functions for finding data within a string.
 
*[[StringToValue]] - Functions for finding data within a string.
 
*[[StringUtil]] - Word wrap and line count functions.
 
*[[StringUtil]] - Word wrap and line count functions.
*[[TerrainObjExporter]] - Export Unity 2.0 Terrain objects as obj files
+
*[[TerrainObjExporter]] - Export Unity 2.0 Terrain objects as obj files.
*[[TextScanner]] - A utility class for parsing strings using std C sscanf format strings
+
*[[TextScanner]] - A utility class for parsing strings using std C sscanf format strings.
*[[VertexInfo]] - Displays the vertex numbers of a mesh at the runtime
+
*[[VertexInfo]] - Displays the vertex numbers of a mesh at the runtime.
  
 
== Really Simple Scripts ==
 
== Really Simple Scripts ==
  
*[[ConstantVelocity]] - This script allows you to set a local velocity to an object (useful for missiles perhaps?)
+
*[[ConstantVelocity]] - Set a local velocity to an object (useful for missiles perhaps?)
*[[OnCollideExplode]] - This script spawns a prefab(explosion) on collision, and removes the gameobject from the game.
+
*[[OnCollideExplode]] - Spawn a prefab (explosion) on collision, and remove the GameObject from the game.
*[[OnCollideSound]] - This script spawns a prefab(preferably a sound) if a collision is over a certain magnitude.
+
*[[OnCollideSound]] - Spawn a prefab (preferably a sound) if a collision is over a certain magnitude.
*[[OnExplosionEffect]] - This script attached to an explosion will give an area effect of an explosion
+
*[[OnExplosionEffect]] - Give an explosive effect over an area.
*[[SwitchCamera]] - This script switches between cameras in your scene.
+
*[[SwitchCamera]] - Switches between cameras in your scene.
*[[PointerManager]] - This script hides the mouse pointer when it is not in use.
+
*[[PointerManager]] - Hides the mouse pointer when it is not in use.
  
 
== Code Snippets ==
 
== Code Snippets ==
  
*[[Calculating Lead For Projectiles]] - These script fragments allow you to add some lead ahead of the target allowing projectiles/missiles to collide with the target - A quadratic rather than an iterative solution
+
*[[Calculating Lead For Projectiles]] - These script fragments allow you to add some lead ahead of the target allowing projectiles/missiles to collide with the target.  Uses a quadratic rather than an iterative solution.
  
  
Line 55: Line 59:
 
*[[CrossFadePro]] - Smoothly fade the view from one camera to another, with motion in both cameras.
 
*[[CrossFadePro]] - Smoothly fade the view from one camera to another, with motion in both cameras.
 
*[[DreamWipe]] - Fade the view from one camera to another, with the wavy distortion seen with dream sequences or flashbacks
 
*[[DreamWipe]] - Fade the view from one camera to another, with the wavy distortion seen with dream sequences or flashbacks
*[[FadeInOut]] - Little script to fade a full-screen image in or out, good for fade in outs.
+
*[[FadeInOut]] - Fade a full-screen image in or out, good for fade in outs.
*[[Headbobber]] - This script makes an object bob up and down smoothly when you're pressing one or both of the horizontal/vertical axes.
+
*[[Headbobber]] - Make an object bob up and down smoothly when you're pressing one or both of the horizontal/vertical axes.
 
*[[MouseLookPlus]] - A javascript mouselook with key control. based on the standard assets C# mouselook.
 
*[[MouseLookPlus]] - A javascript mouselook with key control. based on the standard assets C# mouselook.
 
*[[RectangleWipe]] - Make an animated rectangular zooming screen wipe from one camera to another.
 
*[[RectangleWipe]] - Make an animated rectangular zooming screen wipe from one camera to another.
Line 65: Line 69:
 
== Character Controller Scripts ==
 
== Character Controller Scripts ==
  
*[[Force2D]] - Place this script on a [http://www.otee.dk/Documentation/ScriptReference/GameObject.html GameObject] and have it constrained to two dimensions.
+
*[[Force2D]] - Constrain a GameObject to move in two dimensions.
*[[PhysicsFPSWalker]] - Another physics based fps walker script
+
*[[PhysicsFPSWalker]] - Another physics based fps walker script.
 
*[[RigidbodyFPSWalker]] - An physics based FPS walker that works with rigidbodies and thus is affected by forces, joints or other rigidbodies
 
*[[RigidbodyFPSWalker]] - An physics based FPS walker that works with rigidbodies and thus is affected by forces, joints or other rigidbodies
 
*[[ShipControls]] - Place this script on a [http://www.otee.dk/Documentation/ScriptReference/Rigidbody.html RigidBody] for 2D spaceship controls like [http://otee.dk/gallery/udwc/OverWhelmedArena.html OverWhelmed Arena].
 
*[[ShipControls]] - Place this script on a [http://www.otee.dk/Documentation/ScriptReference/Rigidbody.html RigidBody] for 2D spaceship controls like [http://otee.dk/gallery/udwc/OverWhelmedArena.html OverWhelmed Arena].
*[[VariableSpeedFPSwalker]] - An FPS walker script having different speeds for walking forward, strafing, and backpedaling
+
*[[VariableSpeedFPSwalker]] - An FPS walker script having different speeds for walking forward, strafing, and back-pedalling.
*[[JCar]] - A car using wheel colliders
+
*[[JCar]] - A car using wheel colliders.
  
 
== Animation Controllers ==
 
== Animation Controllers ==
Line 143: Line 147:
 
*[[Trail Arc Renderer]] - Designed for melee trail swings, this creates a trail using Catmull-Rom spline interpolation
 
*[[Trail Arc Renderer]] - Designed for melee trail swings, this creates a trail using Catmull-Rom spline interpolation
  
== Image Postprocessing Effects (require Unity Pro) ==
+
== Image Postprocessing Effects ==
 +
 
 +
These scripts require Unity Pro.
  
 
*[[BloomEffect]] (OBSOLETE) - Sometimes referred to as "glow", use this effect to make bright parts in your scene bleed.  This script is made obsolete by the GlowEffect shipped with Unity 1.5.
 
*[[BloomEffect]] (OBSOLETE) - Sometimes referred to as "glow", use this effect to make bright parts in your scene bleed.  This script is made obsolete by the GlowEffect shipped with Unity 1.5.

Revision as of 22:47, 1 October 2008

Contents

General

General Concepts

  • AManagerClass - How to add easy access to a singleton class in a scene.
  • BasicDataStructures - Discussion of the use of the data-structures available in Unity.
  • SimpleRegex - How one might use regular expressions in Unity.
  • ToggleGravity - How to toggle a property, in this case the global gravity setting, by the left mouse button.

Utility Scripts

  • Angle - Helper class to work with angles.
  • CustomRandom - C# Random number generator, when you must have a random number generator that works the same way on all platforms!
  • deepSearch - Searches recursively from the parent down.
  • ExpandoObject - Create ECMAScript-style expando objects in Unity Javascript.
  • HexConverter - Functions for converting decimal colors to hexadecimal... and back.
  • HSBColor - This utility script provides a HSB color model in addition to Unity's built in RGB Color class.
  • LABColor - This utility script provides an LAB color model in addition to Unity's built in RGB Color class.
  • Layers - A utility script for holding easily-accessible layers and easily creating masks.
  • Mathfx - This script contains a growing number of small and useful math functions (short for Mathf eXtended).
  • Matrix - A class for doing 3D matrix math against Vector3 objects.
  • MazeGenerator - Randomly generates a maze.
  • MD5 - Generate an MD5 hash for a string.
  • MetadataSystem - Mechanism for ciphered, compressed preferences and declarative metadata system with runtime overrides.
  • MixupGO - Flatten GameObjects and all attached components into a single object using duck typing in Unity Javascript.
  • ObjExporter - A simple utility class for exporting a mesh to an obj file.
  • PrintPolyCount - Prints total vertex and triangle count in the object hierarchy.
  • Set - A set data structure.
  • Shell - A replacement for the built-in shell function removed from Unity 1.6.1.
  • StringToValue - Functions for finding data within a string.
  • StringUtil - Word wrap and line count functions.
  • TerrainObjExporter - Export Unity 2.0 Terrain objects as obj files.
  • TextScanner - A utility class for parsing strings using std C sscanf format strings.
  • VertexInfo - Displays the vertex numbers of a mesh at the runtime.

Really Simple Scripts

  • ConstantVelocity - Set a local velocity to an object (useful for missiles perhaps?)
  • OnCollideExplode - Spawn a prefab (explosion) on collision, and remove the GameObject from the game.
  • OnCollideSound - Spawn a prefab (preferably a sound) if a collision is over a certain magnitude.
  • OnExplosionEffect - Give an explosive effect over an area.
  • SwitchCamera - Switches between cameras in your scene.
  • PointerManager - Hides the mouse pointer when it is not in use.

Code Snippets

  • Calculating Lead For Projectiles - These script fragments allow you to add some lead ahead of the target allowing projectiles/missiles to collide with the target. Uses a quadratic rather than an iterative solution.


Controllers

Camera Controls

  • CrossFade - Smoothly fade the view from one camera to another.
  • CrossFadePro - Smoothly fade the view from one camera to another, with motion in both cameras.
  • DreamWipe - Fade the view from one camera to another, with the wavy distortion seen with dream sequences or flashbacks
  • FadeInOut - Fade a full-screen image in or out, good for fade in outs.
  • Headbobber - Make an object bob up and down smoothly when you're pressing one or both of the horizontal/vertical axes.
  • MouseLookPlus - A javascript mouselook with key control. based on the standard assets C# mouselook.
  • RectangleWipe - Make an animated rectangular zooming screen wipe from one camera to another.
  • ShapeWipe - Make an animated screen wipe, where an arbitrary shape containing the second view zooms in or out, and rotates.
  • SmoothFollow2 - This is designed to make a camera smoothly follow a ship in space.
  • SquishWipe - Make an animated screen wipe from one camera to another, where the first image is squished out of view.

Character Controller Scripts

Animation Controllers

  • AniMate - Script to quickly and easily create animations/tweens of almost any value and including eased, rigidbody and rotation animation.


GUI

Graphical User Interface Scripts

  • AutoType - Automaticly types a string of text typewriter style.
  • Box_Script - Use this system to easily make simple GUI elements in nice looking boxes with buttons that actually do something useful. All generated at runtime from a MenuStyle.
  • Button - Use this script on a guiTexture object for regular push buttons that send a message when clicked.
  • Custom_2D_Pointer - Make a custom pointer that changes shape at the edges of the screen.
  • DraggableGUIElement - Click and drag on GUITexture or GUIText to move it around the screen.
  • DragSlider - Use this script with a pair of GUITextures to make a functioning slider.
  • FadeIn - Allows you to show/hide a GUIText or GUITexture when pressing a key/button.
  • ForwardAllMouseEvents - Send mouse events to some sort of controller type GameObject.
  • GetTimeString - A simple function that can be placed anywhere and used to display times. Useful for racing games.
  • GUIBuilder - Generic classes for easing the pain of GUI creation. (BETA)
  • GUIFly - Use this script on an object to make it respond to a "Fly" message so that it may move on and off the screen in a pleasing manner.
  • GuiRatioFixer - Use on a GUIText /GUITexture object to automatically adjust aspect ratio
  • GuiRatioFixer2 - Alternate script based on screen's aspect to use on a GUIText /GUITexture object to automatically adjust aspect ratio
  • ScreenShotMovie - Captures a screenshot sequence for use when making a movie
  • TakeScreenshot - Captures sequentially numbered screenshots when a function key is pressed.
  • ToggleButton - Extends the Button class to create a toggle button.

Unity 2.0 GUI Scripts

  • Blinking Text Entry Cursor - Make your cursor blink on input fields
  • CustomGetMouseButtonDown - custom wrapper functions for Input.GetMouseButton(Down) which can be modified to block clicks when over a window
  • Position To Rect - Convert a GUITexture position to Rect (GUI coordinates)
  • GUICam - Holds GUIRect a rectanle of camera pixelRect in GUI oriented co-oridinates (0,0) is top left
  • GUIx - extended GUI functions
  • PasswordField - Allows the user to type in a field masked by *'s (or any other character)
  • PauseMenu - Standard pause menu used by Fugu Games for web players and widgets
  • SelectList - A list of elements of which one can be selected.
  • WithPrefs - Functions that change values and modifies preferences in one simple step

Heads Up Display Scripts


Effects

General Purpose Effect Scripts

  • Animating Tiled texture - A texture made of many tiles animated through setting the uv offsets
  • Animating Tiled texture - Extended - Use one animation cell-sheet texture for many animations and skins.
  • CameraFacingBillboard - Use this script on a billboard or similar object to make it align itself with the camera.
  • CameraRenderSettings - Allows storing seperate render settings per camera - an extended version of the Fog Layer script above.
  • Character Shadow - Cast shadows from an object! (requires Unity Pro)
  • Flocking - A flocking script with randomness and target following.
  • Fog Layer - Lets you determine per camera if fog should be enabled or disabled
  • LookAtCameraYonly - Use this script on a billboard or other object to have it face the camera but only rotate on the Y axis.
  • MeshMorpher - A Mesh Morpher script with scripting API
  • MetaBalls - 3D Metaballs
  • OptimizedTrailRenderer - Started from Yoggy's trail renderer above, this one updates every frame and is built for one-time use.
  • Perlin Noise - Noise functions for smoothly moving objects around or anything else
  • ReverseNormals - Reverses normals & back face culling of a mesh
  • Shadow Volumes in Alpha - Shadow volume based shadows (requires Unity Pro)
  • SoftBodies - Cloth, Springy Noodles, Jello Blocks, etc..
  • StopEmittingAfterDelay - After a configurable delay, particles will fade naturally, then finally the object will get destroyed with autodestruct.
  • Spline Controller - Interpolates any GameObject along a user-defined spline
  • SVG - Render SVG Files.
  • TubeRenderer - LineRenderer too flat? Make it a tube instead.
  • TimeBasedTrailRenderer - The Built in trail renderer does not fade its segments based on the time they have been alive. This one does.
  • Trail Arc Renderer - Designed for melee trail swings, this creates a trail using Catmull-Rom spline interpolation

Image Postprocessing Effects

These scripts require Unity Pro.

  • BloomEffect (OBSOLETE) - Sometimes referred to as "glow", use this effect to make bright parts in your scene bleed. This script is made obsolete by the GlowEffect shipped with Unity 1.5.
  • BoostColors - A very simple and fast way to boost the contrast of saturation of the graphics in your game.
  • InvertCamera - A simple script that will invert everything rendered by a camera.


Physics / Simulation

Physics Scripts

  • DontGoThroughThings - Script that uses raycasting to avoid fast-moving objects going through obstructions.
  • ComplicatedRigidbodyControl - Attach a rigidbody to an arbitrary transform, or a method to make rigidbodies never overshoot.

Simulation Scripts

  • Compass - This script simulates a compass with North relative to the Z axis of a reference object
  • GameTime - This script rotates a directional light to match the rotation of the sun based on the system time.
  • GPS Global Positioning System - This script simulates a GPS device providing real world GPS locations based on a reference point
  • Gravity - Simulates body-to-body gravity (i.e. planetary gravity)
  • IMU Inertial Measurement Unit - This script simulates an IMU providing velocities and accelerations of the object it is attached to in the objects local frame.
  • SICK Laser Scanner - This script simulates the SICK LMS type planar laser scanner
  • Trajectory Simulation - Demonstrates simulating the trajectory of a launched object


Networking

WWW Scripts

  • CookieCutter - Access browser cookies from Unity web players.
  • GetXMLHack - Get XML data into the web player using browser script instead of WWW() (which has been buggy for me!)
  • MeshSerializer - Save Unity meshes to files for the Web, load them with WWW interface.
  • PlayerPrefsx - ( Now obsolete in Unity 2.1) An extension to CookieCutter which allows you to save data in both standalones and cookies for the web without having to think about it.
  • Server Side Highscores - A complete tutorial for implementing a server side php script for storing high scores and how to post the scores to the server.
  • UnityObject - A nice & clean way to embed .unityweb in your web browser. Plugin Detection, Communication, Clean HTML
  • VersionCheck - A very basic version checker. This can be used to check if the version of the game the user is running is the latest, and if not, send them to a URL to download the latest.

Unity 1.x Networking Scripts

  • NetworkCursor - Serverless realtime networking. An example where one Unity instance controls another via a TCP/IP socket. Could be expanded to do many types of realtime networking.
  • Sender - Uses a Server to send data from the parent object to whatever is on the other end of the connection.
  • Server - TCP network host, based on NetworkCursor, but expanded to do more.
  • Simple TCP/IP Client - Server - This contains source code for C# that you can use to create a server for Windows and a DLL in C# that you can use with Unity


Sound

  • JukeboxController - A very basic jukebox class. This can be used to manage multiple audio clips across different levels.
  • Loudness - A simple improvement for volume control.
  • SmoothAudioLoop - Allows for audio files with extended "tails" to be looped.


Development

Debugging Scripts

  • DetectLeaks - a simple GUI script for displaying the amount of objects currently loaded by type
  • DebugConsole - A script to allow scrolling feedback from your scripts.
  • DebuggerX - A simple javascript singleton that allows you to send debug to the console or the GUI
  • Reporter - a simple delayed action system info script that could be used for support purposes
  • UUnit - a Simple xUnit framework that can be run inside Unity.

Performance Scripts

  • StaticPerformanceOptimization - A script that optimizes performance statically based on the users graphics card by dropping terrain resolution and quality settings

Editor Scripts

  • AddChild - Adds an empty GameObject as a child of each selected object.
  • AddComponentRecursively - Adds a component to an object, and all the children of that object.
  • CopyTransform - Copies the local transform of the selected game instance in the scene and then pastes it into another one you select.
  • DeleteComponentsInChildren - Helps to delete a special type of components which are attached to the children of the selected Gameobject.
  • FindObjects - Find objects by name or attached component type.
  • GetSize - Get the size in game units of a selection.
  • HeightmapFromTexture - Applies a selected texture as a heightmap to the active terrain.
  • InsertParent - An alternative to the built-in Make Parent command, this script inserts a new GameObject which becomes the parent of all selected objects.
  • Notes - Allows you to add notes to any GameObject.
  • PixelLightMapper - A pixel based light mapper for Unity
  • Skybox Generator - Generates the 6 images necessary to create a Skybox in Unity.
  • SnapToGrid - Snaps objects to a grid in 3 dimensions.
  • Take3DScreenshot - Take a "3d screenshot"; a series of screenshots captured while rotating around a given object. Useful for QTVR creation.
  • ToggleActiveRecursively - Activates/deactivates entire hierarchies at once.


External Links

Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox