Muovere un GameObject da un punto a un altro su Unity
Muovere un GameObject da un punto a un altro su Unity
Muovere un GameObject da un punto a un altro su Unity
Metodi per spostare un oggetto da un punto ad un altro su Unity
Spostare un oggetto su un punto in Unity può essere fatto in molti modi diversi.
Qui vengono spiegati due metodi molto comodi a seconda della situazione.
Nel primo esempio di seguito si vede come muovere un oggetto in alto e in basso in loop, dunque non si ha propriamente la necessità di spostarlo in un punto particolare ma semplicemente di farlo notare. In questo caso l’esempio è per un mondo 2D ma lo stesso concetto si applica facilmente anche al 3D.
private Vector2 Direzione;
private Vector2 Posizione_iniziale;
void Start ()
{
Direzione = new Vector2();
Posizione_iniziale = transform.position;
}
void Update ()
{
// Muovo l'oggetto su e giù, 5f è la velocità di movimento
transform.Translate(Direzione * 5f * Time.deltaTime);
if (transform.position.y > Posizione_iniziale.y + 0.2f)
Direzione = new Vector2(-1f, -1f);
if (transform.position.y < Posizione_iniziale.y - 0.2f)
Direzione = new Vector2(-1f, 1f);
}
Nel caso invece si abbia bisogno di muovere l’oggetto verso un punto in particolare torna utilissimo l’esempio di seguito:
public GameObject Obbiettivo; // GameObject nella posizione desiderata void Update() { // Imposto la velocita e uso il metodo per muovere verso l'obbiettivo float Velocita = 5f * Time.deltaTime; transform.position = Vector3.MoveTowards(transform.position, Obbiettivo.transform.position, Velocita); }
In questo caso si può creare un GameObjet vuoto e posizionarlo dove dobbiamo spostare l’oggetto in questione. A questo punto basta collegare il GameObject vuoto allo script per il movimento e usare il metodo illustrato (Vector3.MoveTowards) per muovere l’oggetto verso la posizione del GameObject vuoto.