unity3d

Unity – Scripting – Basics

Videogames Development – Unity – How to add a script

ADD SCRIPT

1. MAIN TOP MENU> Assets> Create Javascript

2. Assets> select NewBehaviourScript Import Setting

3. Inspector> ‘Open’ button, it starts MonoDevelop-Unity editor

4. Write:

function Start() 
{
    print( "Hello, world" );
}

5. MAIN TOP MENU> GameObject> Create Empty

6. Hierarchy> select ‘GameObject’ you have just created> Inspector> ‘Add Component’> Scripts> NewBehaviourScript

7. Play button> BOTTOM LEFT you will see ‘Hello, world’

BASIC STRUCTURE

#pragma strict

function Start()
{
  ... it runs one time when game start ...  
}

function Update()
{
  ... it runs every frame ...
}

NOTICE:
#pragma is a pre-compiler directive. ie it tells the compiler what to do or how to behave.
With #pragma you must tell of what type the variable will be and it will give you an error if you don’t comply.

ADVANCED STRUCTURE WITH FUNCTIONES

#pragma strict

var... declare initial value of variables -> DEFAULT ACCESS IS PUBLIC

// Single line comment

/*
Multiline comment
*/

function Start()
{
  ... it runs one time when game start ...  
}

Myfunction()
{
  ... the other funcions ...  
}


function Update()
{
  ... it runs every frame ...
Myfunction(); // call external functions
}

AWAKE – START – UPDATE

#pragma strict

function Awake ()
{
    ... setup ammo for the enemy ... 
    it starts at first, even component is not enable
}


function Start ()
{
    ... allow enemy to shoot ... 
    it starts when component is enabled
}

function Update()
{
    ... hits control ... 
    it is called once per frame to control data changes over time, use this to:
    - moving non physics objects
    - simple timers
    - receiving input
    NOTICE: update interval times vary
    RESULT SAMPLE OVER TIME: 0.01656623 - 0.01656666 - 0.01656696 (it changes)
}
function FixedUpdate()
{
    ... hits control ... 
    it is called at fixed update intervals:
    - called every physics step
    - fixed update intervals are consistent
    - regular updates: adjusting physics objects
    NOTICE: update interval times is constant
    RESULT SAMPLE OVER TIME: 0.02 - 0.02 - 0.02 (it does not change)
}
By |Unity3D|Commenti disabilitati su Unity – Scripting – Basics

Unity – Scripting – Countdown – Seconds

Videogames Development – Unity – How to create a countdown

Assign this code to an Empty Object in the Scene:

#pragma strict

var endTime : float;


function Start()
{
    endTime = Time.time + 60;
}

function Update()
{
    var timeLeft : int = endTime - Time.time;
    // We do not need negative time
    if (timeLeft < 0) timeLeft = 0;
    Debug.Log(timeLeft);
}

Take it from the top:

1. Declare ‘endTime’ variable
2. inside ‘Start()’, setup inital value ‘endTime’=’Time.time’ (this is the time in seconds since the start of the game) + 60 -> 60 seconds
3. inside ‘Update(), ‘timeLeft’ = 60 – ‘Time.time’ (this is the time in seconds since the start of the game) -> 59…58…57
if (timeLeft < 0) timeLeft = 0; we do not need negative time show inside debug console 'timeLeft'

By |Unity3D|Commenti disabilitati su Unity – Scripting – Countdown – Seconds

Unity – Scripting – Math

Videogames Development – Unity – Mathf

The Math object allows you to perform mathematical tasks.

BASIC USE

Assign this code to an Empty Object in the Scene:

#pragma strict

function Start()
{
    
}

function Update()
{
var x=9;
var y=Mathf.Sqrt(x);
Debug.Log(y); // The result is 3
}

COMPLETE LIST

Deg2Rad Degrees-to-radians conversion constant (Read Only).
Epsilon A tiny floating point value (Read Only).
Infinity A representation of positive infinity (Read Only).
NegativeInfinity A representation of negative infinity (Read Only).
PI The infamous 3.14159265358979… value (Read Only).
Rad2Deg Radians-to-degrees conversion constant (Read Only).

Abs Returns the absolute value of f.
Acos Returns the arc-cosine of f – the angle in radians whose cosine is f.
Approximately Compares two floating point values if they are similar.
Asin Returns the arc-sine of f – the angle in radians whose sine is f.
Atan Returns the arc-tangent of f – the angle in radians whose tangent is f.
Atan2 Returns the angle in radians whose Tan is y/x.
Ceil Returns the smallest integer greater to or equal to f.
CeilToInt Returns the smallest integer greater to or equal to f.
Clamp Clamps a value between a minimum float and maximum float value.
Clamp01 Clamps value between 0 and 1 and returns value.
ClosestPowerOfTwo Returns the closest power of two value.
Cos Returns the cosine of angle f in radians.
DeltaAngle Calculates the shortest difference between two given angles.
Exp Returns e raised to the specified power.
Floor Returns the largest integer smaller to or equal to f.
FloorToInt Returns the largest integer smaller to or equal to f.
GammaToLinearSpace Converts the given value from gamma to linear color space.
InverseLerp Calculates the Lerp parameter between of two values.
IsPowerOfTwo Returns true if the value is power of two.
Lerp Interpolates between a and b by t. t is clamped between 0 and 1.
LerpAngle Same as Lerp but makes sure the values interpolate correctly when they wrap around 360 degrees.
LinearToGammaSpace Converts the given value from linear to gamma color space.
Log Returns the logarithm of a specified number in a specified base.
Log10 Returns the base 10 logarithm of a specified number.

Max Returns largest of two or more values.
Mathf.Max(1, 2)

Min Returns the smallest of two or more values.
Mathf.Min(1, 2)

MoveTowards Moves a value current towards target.
MoveTowardsAngle Same as MoveTowards but makes sure the values interpolate correctly when they wrap around 360 degrees.
NextPowerOfTwo Returns the next power of two value.
PerlinNoise Generate 2D Perlin noise.
PingPong PingPongs the value t, so that it is never larger than length and never smaller than 0.
Pow Returns f raised to power p.
Repeat Loops the value t, so that it is never larger than length and never smaller than 0.

Round Returns f rounded to the nearest integer.
If the number ends in .5, the even (pari) number is returned
Mathf.Round(10.2) // the result is 10
Mathf.Round(-10.7) // the result is -11

RoundToInt Returns f rounded to the nearest integer.

Sign Return value is 1 when f is positive or zero, -1 when f is negative.
Mathf.Sign(-10)

Sin Returns the sine of angle f in radians.
Mathf.Sin(3)

SmoothDamp Gradually changes a value towards a desired goal over time.
SmoothDampAngle Gradually changes an angle given in degrees towards a desired goal angle over time.
SmoothStep Interpolates between min and max with smoothing at the limits.

Sqrt Returns square root of f.
Mathf.Sqrt(9)

Tan Returns the tangent of angle f in radians.
Mathf.Tan(0.5)

OFFICIAL REFERENCE

http://docs.unity3d.com/Documentation/ScriptReference/Mathf.html

By |Unity3D|Commenti disabilitati su Unity – Scripting – Math

Unity – Scripting – OnClick – Counter

Videogames Development – Unity – OnClick Counter

A great snippet if you make a game that needs a click counter!

Code:

#pragma strict

function Start () {

}

// On Click Counter START #########################

//This is the variable we are using to store the number of clicks
var clickCounter: int;
//This creates a button and adds +1 to clickCounter variable every 1 click
function OnGUI () {
	if (GUI.Button (Rect (10,10,150,100), "You clicked:" + clickCounter)) {
	    clickCounter ++;		
	}
}

// On Click Counter END ###########################

function Update () {

}
By |Unity3D|Commenti disabilitati su Unity – Scripting – OnClick – Counter

Unity – Scripting – Random Numbers

Videogames Development – Unity – Random Numbers

Assign this code to an Empty Object in the Scene:

#pragma strict

var x : float;


function Start()
{
    x = Random.Range(-10.0, 10.0);
}

function Update()
{
    Debug.Log(x);
}

Statement:
x = Random.Range(-10.0, 10.0); -> static function Range(min: float, max: float): float; -> The result is a float numer as: 1.986345

By |Unity3D|Commenti disabilitati su Unity – Scripting – Random Numbers