Unity 3D Game Engine – Text Rotator

Unity 3D Game Engine – Text Rotator

How to create an easy to use Text-Rotator using Javascript Arrays

1. MAIN TOP MENU> GameObject> Create Other> GUIText

2. MAIN TOP MENU> GameObject> Create Empty> name it DialogueController, assign DialogueController.JS

DialogueController.JS:


#pragma strict

var character: GUITexture; 	// Assegnare in Inspector
var baloon: GUITexture; 	// Assegnare in Inspector
var baloonText: GUIText; 	// Assegnare in Inspector

    var transitionTime : int = 3; // da Inspector dare il tempo di transizione 
	var i : int = 0; // indice dell'array di frasi
	
	// array di frasi INIZIO #######################
	var sentences = new Array (); 
	sentences[0] = "Statement-1";
	sentences[1] = "Statement-2";
	sentences[2] = "Statement-3";
	sentences[3] = "Statement-4";
	// array di frasi FINE #########################


function Start () {

	// Dimensiono e posiziono gli elementi di interfaccia INIZIO ###############
	// lo faccio da codice per renderli responsivi basandomi sulla risoluzione video
	character.pixelInset = new Rect(0f, 0f, Screen.width/6, Screen.width/6); // la miniatura con la faccia del personaggio è 1/6 della risoluzione
	character.transform.position = Vector3(0, 0, 0); // posiziono la faccia in basso a sinistra
	
    baloon.pixelInset = new Rect(0f, 0f, Screen.width, Screen.width/6); // baloon
	baloon.transform.position = Vector3(0, 0, 0); 
	baloon.color = Color.blue; // colore del baloon
	baloon.color.a = 0.25f; // trasparenza del baloon
	// Dimensiono e posiziono gli elementi di interfaccia FINE #################	
	
}

function BaloonContent(){
	// NB: In anteprima può dare un flickering che scompare con la Build Finale
	baloonText.text = sentences[i].ToString();// scrivi la frase a video, convertire a stringa altrimenti verrà effettuato un - implicit downcast t0 string - con messaggio di avvertimento nella console
	yield WaitForSeconds (transitionTime); // attendi x secondi
	i = 1;
	yield WaitForSeconds (transitionTime);
	i = 2;
	yield WaitForSeconds (transitionTime);
	i = 3; // ultimo indice
}

function Update () {
BaloonContent(); // richiama scrittura testo	   
}// End Update()

4. Hierarchy> DRAG AND DROP GUIText over DialogueController.JS GUIText var

Done!

By |Unity3D, Video Games Development|Commenti disabilitati su Unity 3D Game Engine – Text Rotator

Unity 3D Game Engine – Web Player – How to disable Right-Click context Menu

Unity 3D Game Engine – Web Player – How to disable Right-Click context Menu

How can you disable the default right-click context menu (i.e. shows “Fullscreen” option) from the application?

Super Easy!

MAIN TOP MENU> File> Build Settings> Player Settings> “Resolution and Presentation”> WebPlayer Template> “No Context Menu”

Into RIGHT COLUMN there are three options:

– Black background
– Default (white background)
– No Context Menu (no right click menu, white background)

By |Unity3D, Video Games Development|Commenti disabilitati su Unity 3D Game Engine – Web Player – How to disable Right-Click context Menu

Unity3D Game Engine – Get Objects with Find.name / FindWithTag / FindGameObjectsWithTag

Unity3D Game Engine – Get Objects with Find.name / FindWithTag / FindGameObjectsWithTag

Get Objects – Find.name

Restituisce un oggetto in base al nome che ha in Hierarchy

1. Create inside Hierarchy:

– parent ->’Arm’ (Cube) braccio
– child of Arm ->’Forearm’ (Cube) avambraccio
– child of Forearm ->’Hand’ (Cube) mano

– GameController(Empty Object) -> attach GameController.JS

2. GameController.JS:


#pragma strict

        // Devo associare i Gameobject a delle variabili
        // E' meglio private perchè non devo modificarla in Inspector
	private var hand : GameObject;
	private var arm : GameObject;

function Start () {
        // Hand non ha lo slash / all'inizio perchè ha un oggetto parent
	hand = GameObject.Find("Hand");
	// Arm ha lo slash / all'inizio perchè non ha un oggetto parent
	arm = GameObject.Find("/Arm");
}

function Update () {
        // Ruoto i singoli elementi
	hand.transform.Rotate(0, 100 * 10* Time.deltaTime, 0);
	arm.transform.Rotate(0, 100 * Time.deltaTime, 0);

}

Official docs:
GameObject.Find: http://docs.unity3d.com/ScriptReference/GameObject.Find.html

Get Objects – GameObject.FindWithTag

Restituisce SOLO L’ULTIMO OGGETTO a cui è stato assegnato un determinato tag.

1. Create inside Hierarchy:

– Hand1′ (Cube) -> Inspector assign Tag ‘MyHand’

– Hand2 (Cube) -> Inspector assign Tag ‘MyHand’

– GameController(Empty Object) -> attach GameController.JS

2. GameController.JS:


#pragma strict

// definisco la variabile per ottenere GameObject
private var hand : GameObject;

function Start () {
    // inserisco in una variabile l'oggetto con tag 'MyHand'
    // ritorna SOLO l'ultimo oggetto a cui è stato assegnato il tag
    hand =  GameObject.FindWithTag ("MyHand");
    
    // se l'oggetto con tag non esiste restituisce un messaggio di errore
    if (hand == null)
    {
        Debug.Log ("Cannot find 'MyHand'");
    }
}

function Update () {
        // Ruota
	hand.transform.Rotate(0, 100 * 10* Time.deltaTime, 0);

}

3. Play, ruota SOLO L’ULTIMO OGGETTO CON IL TAG

Official docs:
http://docs.unity3d.com/ScriptReference/GameObject.FindWithTag.html

Get Objects – GameObject.FindGameObjectsWithTag

Restituisce in un array di oggetti, TUTTI GLI OGGETTI a cui è stato assegnato un determinato tag.

1. Create inside Hierarchy:

– Hand1′ (Cube) -> Inspector assign Tag ‘MyHand’

– Hand2 (Cube) -> Inspector assign Tag ‘MyHand’

– GameController(Empty Object) -> attach GameController.JS

2. GameController.JS:


#pragma strict

// definisco la variabile per ottenere GameObject
// è un array di oggetti perchè potrebbero essere più di uno
var hands : GameObject[];

function Start () {
    // inserisco in una variabile l'oggetto con tag 'MyHand'
    // ritorna TUTTI gli oggetti a cui è stato assegnato il tag
    hands =  GameObject.FindGameObjectsWithTag ("MyHand");
}

function Update () {
    // Ruota gli oggetti contenuti nell'array hands[]
    hands[0].transform.Rotate(Vector3.back, 10 * Time.deltaTime);
    hands[1].transform.Rotate(Vector3.back, 10 * Time.deltaTime);
}

3. Play, ruotano TUTTI GLI OGGETTI CON IL TAG

Official docs:
http://docs.unity3d.com/ScriptReference/GameObject.FindGameObjectsWithTag.html

By |Unity3D, Video Games Development|Commenti disabilitati su Unity3D Game Engine – Get Objects with Find.name / FindWithTag / FindGameObjectsWithTag

Unity 3D – Hide Mouse Cursor

Unity 3D – Hide Mouse Cursor

1. Load a Scene

2. Select MainCamera, assign HideCursor.JS

#pragma strict
  
function Start () {  
	// Hide the cursor
	Screen.showCursor = false;	
}
   

function Update () {  
}


3. Build it and run

NOTICE: If you try the game during production you will see the mouse cursor! You have to build to see the final result!

By |Unity3D, Video Games Development|Commenti disabilitati su Unity 3D – Hide Mouse Cursor

Unity 3D Game Engine – Frames per Seconds – JavaScript

Unity 3D Game Engine – Frames per Seconds – JavaScript

1. Create GUIText and attach:


// Attach this to a GUIText to make a frames/second indicator.
//
// It calculates frames/second over each updateInterval,
// so the display does not keep changing wildly.
//
// It is also fairly accurate at very low FPS counts (<10).
// We do this not by simply counting frames per interval, but
// by accumulating FPS for each frame. This way we end up with
// correct overall FPS even if the interval renders something like
// 5.5 frames.
 
var updateInterval = 0.5;
 
private var accum = 0.0; // FPS accumulated over the interval
private var frames = 0; // Frames drawn over the interval
private var timeleft : float; // Left time for current interval
 
function Start()
{
    if( !guiText )
    {
        print ("FramesPerSecond needs a GUIText component!");
        enabled = false;
        return;
    }
    timeleft = updateInterval;  
}
 
function Update()
{
    timeleft -= Time.deltaTime;
    accum += Time.timeScale/Time.deltaTime;
    ++frames;
 
    // Interval ended - update GUI text and start new interval
    if( timeleft <= 0.0 )
    {
        // display two fractional digits (f2 format)
        guiText.text = "" + (accum/frames).ToString("f2");
        timeleft = updateInterval;
        accum = 0.0;
        frames = 0;
    }
}

By |Unity3D, Video Games Development|Commenti disabilitati su Unity 3D Game Engine – Frames per Seconds – JavaScript