Guide

Unity2D: implementare il movimento verso il mouse o il dito

Come muovere su Unity2D un personaggio utilizzando il mouse o il touch screen. Movimento del personaggio verso il mouse o il dito.

unity3d-movimento-dito

Unity2D: implementare il movimento verso il mouse o il dito

Guida in italiano, programmare il movimento di un oggetto sullo schermo verso il mouse o verso il dito

Può capitare che nel vostro gioco vogliate muovere il vostro personaggio, o un qualsiasi altro oggetto, senza utilizzare Joypad o tastiera, con un altro tipo di movimento.
Ecco quindi che l’oggetto dovrà muoversi seguendo il mouse, oppure il vostro tocco nel caso di un gioco touch screen.

Come implementare questa funzione?

Di seguito si trovano gli esempi di codice per il mouse e per il tocco.
Il primo esempio per il mouse non fa altro che individuare se viene effettuato un click del tasto sinistro: a quel punto prende le coordinate del mouse sul mondo di gioco (diverse da quelle normali del suo transform!) e muove l’oggetto dello script verso quelle coordinate.

// Il metodo Update, anche se in questo caso è preferibile FixedUpdate()
void Update ()
	{
                // Se è premuto il testo sinistro del mouse
		if (Input.GetMouseButton (0))
                {
			// Inserisco la posizione del mouse sul mondo di gioco in una variabile
			Vector3 PosizioneToccoMouse = Camera.main.ScreenToWorldPoint (new Vector3 (Input.mousePosition.x, Input.mousePosition.y, Camera.main.nearClipPlane));
			// Imposto una variabile per la velocità
			float Velocita = Velocita_di_movimento * Time.deltaTime;
			// Muovo l'oggetto dello script verso la posizione del mouse toccata sullo schermo
			transform.position = Vector3.MoveTowards (transform.position, new Vector3 (PosizioneToccoMouse.x, PosizioneToccoMouse.y, 0), Velocita);
		}
	}

Il secondo esempio per il touch screen rileva se viene effettuato un tocco sullo schermo: a quel punto prende le sue coordinate sul mondo di gioco ( anche qui diverse da quelle normali del suo transform!) e muove l’oggetto dello script verso quelle coordinate.

// Il metodo Update, anche se in questo caso è preferibile FixedUpdate()
void Update ()
	{
               // Se si tocca lo schermo
		if (Input.touchCount > 0)
		{
			// Inserisco il tocco in una variabile
			Touch touch = Input.GetTouch(0);
			// Se il dito è sullo schermo....
			if (touch.phase == TouchPhase.Stationary || touch.phase == TouchPhase.Moved)
			{
				// Inserisco la posizione del tocco sul mondo di gioco in una variabile
				Vector3 PosizioneTouch = Camera.main.ScreenToWorldPoint(new Vector3(touch.position.x, touch.position.y, Camera.main.nearClipPlane));
				// Imposto una variabile per la velocità
				float Velocita = Velocita_di_movimento * Time.deltaTime;
				// Muovo il personaggio verso il punto dove tocca il dito
				transform.position = Vector3.MoveTowards(transform.position, new Vector3(PosizioneTouch.x, PosizioneTouch.y, 0), Velocita);
			}
		}
	}

Articoli correlati

Vedi tutti
creare blog aziendale

Creare un blog aziendale – in 4 passi, facilmente

Hai capito che per fare business conviene aprire un blog aziendale ma non sai da dove iniziare. Se ho indovinato, ho una bella notizia: in questo articolo ti spiegherò esattamente cosa fare – avrai aperto il tuo blog entro oggi! 1 – Blog aziendale, da zero con WordPress La prima cosa da fare è creare […]

Leggi articolo

Cosa rende Coders Italia differente

Perché Codersitalia?

Know-how da multinazionale tech, con tempi e costi da software house indipendente. Investimenti proporzionati al risultato e un'assistenza presente ed efficace.

Tecnologie avanzate, a misura di PMI Portiamo nelle piccole e medie imprese metodi, esperienza e tecnologie da contesti tech d'avanguardia, inclusa l'AI: soluzioni evolute, pratiche e senza investimenti da grande azienda. Innovazione accessibile per PMI
Costi proporzionati al risultato Evitiamo pacchetti gonfiati, moduli venduti a pezzi e aumenti difficili da giustificare. Il costo deve essere coerente con l'impatto reale per la vostra azienda. Costi proporzionati al valore
Gestione chiara e trasparente Niente ticket macchinosi o risposte vaghe: avete un referente, tempi chiari, aggiornamenti comprensibili e confini definiti tra incluso ed extra. Referente, tempi e confini chiari

Analisi gratuita

Richiedi un'analisi gratuita.

Analizziamo il contesto, i problemi principali e le possibili strade per intervenire con una soluzione proporzionata.

+39 02 73103 524