Menu

Move C#

Roberto Bobby Riva

using UnityEngine;
using System.Collections;
public class Move : MonoBehaviour {
public GameObject MainCamera;
private bool ISIS;
void Start(){
ISIS = false;
}

private float i = -10;
private int end = 0;
void OnMouseDown(){
ISIS = true;
}
void FixedUpdate ()
{
if(ISIS)
{
if (end == 0)
{
i++;
if(i>0)
{
end=1;
}
}
else if(end==1)
{
i++;
if(i>40)
{
end=2;
}
}
else if(end==2)
{
i--;
if(i<0)
{
end=3;
}
}
else if(end==3)
{
i=0;
ISIS = false;
}

    MainCamera.transform.Translate (Vector3.right * Time.deltaTime * i);
    MainCamera.transform.Rotate (Vector3.up * -Time.deltaTime * i , Space.World);
}

}
}
Si tratta del primo codice sviluppato da 0 per il movimento nel Menù Principale. Il suo scopo è dare l'effetto di rotazione alla camera, che poi si ritroverà con Posizione e Angolazione differenti rispetto alla situazione iniziale (Cioè la visuale sul menù principale).
Il seguente script è stato poi utilizzato anche per il LoadLevel, spiegato successivamente.
Lo script di base gira sulla rotazione e sullo spostamento (transform) della camera:
Prima di tutto lo stato del programma è "Passivo", in attesa di ricevere in Input da mouse; una volta ricevuto l'input, la variabile ISIS (Boolean) scatta a True, facendo partire le operazioni in Update.
Il ciclo in Update (che si ripete a velocità in base al processore) verifica Prima lo stato della variabile end (che indica lo stato di rotazione della camera) e Poi modifica la variabile i (indicatore di velocità di rotazione) in base allo stato. Passati i controlli, la MainCamera subisce la rotazione in base al valore di i, Maggiore sarà, Maggiore sarà la velocità della rotazione.
Alla fine degli stati, lo script esce dal loop.
Gli end, o Stati della camera, rappresentano sia la posizione approssimativa che i limiti di velocità che la camera può raggiungere in rotazione.
Esistono 4 stati:
1° stato: La camera parte da passiva ed ottiene la prima rotazione. Dato che i è impostato di base su -10 partirà con uno scatto in direzione opposta alla direzione iniziale, modifica puramente estetica per "Partire con una Carica". A ogni Update, i viene Incrementato di 1.
2° stato: La camera torna ad uno stato passivo, a velocità i=0. In questo momento la camera entra effettivamente nella rotazione desiderata (i continua ad essere incrementato per ogni Update), effettuando la rotazione nella direzione esatta. Il tutto viene eseguito fino al limite i<40.
3° stato: La camera è al massimo della velocità (Si troverà esattamente a metà strada dal punto di arrivo) ed incomincia a rallentare, decrementado i invece di incrementarlo. L'effetto di rallentamento graduale rende molto gradevole anche l'apparizione del Pianeta X sul background.
4° stato: Ultimo stato della camera, completamente passiva di nuovo. Si esce dal loop dei controlli rendendo la Boolean ISIS nuovamente False ed azzerando le variabili.


Related

Wiki: Home