Unity 3D Game Engine – JS – Basics – GameObjects – Get

A good practice is to check the properties of external GameObjects using JS.
Now, using a script inside an Empty Object we will drive other GameObjects.

Follow this steps:

1. store the GameObject inside a variable: var myobject : GameObject;
2. DRAG AND DROP from Hierarchy to Inspector var slot the object
3. Code it:
varname.property = ….
varname.component.property = …

See the JavaScript:

var myobject : GameObject; // ASSIGN IN INSPECTOR!!!!!!!

function Update () {

// NOTICE: varname.property = ....
myobject.transform.Rotate(Vector3.back, 30f * Time.deltaTime);

// NOTICE: varname.component.property = ....
myobject.renderer.material.color.a = 0.5; // set transparency to 50%


}

See API documentation at: http://docs.unity3d.com/ScriptReference/index.html

Let’s go on!

0. Project window> RMB> Import New Asset:

– Audio Clip

1. MAIN TOP MENU> GameObject> Create:

– Main Camera

– Point Light

– GUIText

– Cube
-> Transform
-> Mesh Filter
-> Box Collider
-> Mesh Renderer> add ‘material1’ (Transparent/Diffuse Shader)
-> Particle System

2. Create Empty Object, name it ‘Game Controller’
-> Audio Source without audio clip
->’GameController.JS’


#pragma strict

// create var to get some external GameObjects START #################
// ASSIGN IN INSPECTOR
var mytext : GUIText;
var myobject : GameObject;
var mycamera : Camera;
var mylight : Light;
var myaudio : AudioClip;
// create var to get some external GameObjects END ###################

function Start () {

	// instantiate objects at x=0 y=0 z=0, Quaternion.identity-> it means no rotation
	// You can use a prefab
	// Start() will be executed only once -> it will create only one clone
	Instantiate (myobject, new Vector3(0f,0f,0f), Quaternion.identity);

	// play audio clip at volume 0.7
        audio.PlayOneShot(myaudio, 0.7);
}

function Update () {

// change the property .text of GUIText
// NOTICE: varname.property = ....
mytext.text = "Change this properties using scripts!";

// rotate game object
// NOTICE: varname.property = ....
myobject.transform.Rotate(Vector3.back, 30f * Time.deltaTime);
// translate game object
myobject.transform.Translate(new Vector2(1,0)* 1f *Time.deltaTime);
// set transparency
// NOTICE: varname.component.property = ....
myobject.renderer.material.color.a = 0.5; // set transparency to 50%
// set particle system start color 
myobject.particleSystem.startColor = Color.cyan;
// disable collider
myobject.collider.enabled = false;

// change light color
mylight.light.color = Color.red;

// change camera skybox color
mycamera.camera.backgroundColor = Color.green;

} // end Update() #######################################################


3. Hierarchy DRAG AND DROP:

– Main Camera over Inspector mycamera variable
– Point Light over Inspector mylight variable
– Gui Text over Inspector mytext variable
– Cube over Inspector myobject variable
– Audio Clip over Inspector myaudio variable

4. Play