Creare Videogiochi - Game Developer
Movimento oggetto 2D nel canvas - Versione stampabile

+- Creare Videogiochi - Game Developer (https://www.making-videogames.net/giochi)
+-- Forum: Unity3D Italia (https://www.making-videogames.net/giochi/Forum-Unity3D-Italia)
+--- Forum: Richieste di Aiuto per Unity 3D (https://www.making-videogames.net/giochi/Forum-Richieste-di-Aiuto-per-Unity-3D)
+--- Discussione: Movimento oggetto 2D nel canvas (/thread-Movimento-oggetto-2D-nel-canvas)



Movimento oggetto 2D nel canvas - Aconeron - 25-04-2017

Ciao a tutti, ho un problema, devo muovere un'immagine 2D appartenente al canvas a seconda della posizione del mouse.
Codice:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Movement : MonoBehaviour {

   public float speed = 100;
   public bool move = false;
   private Vector3 target;
   void Update()
   {
       if (Input.GetMouseButtonDown(0))
       {
           Debug.Log("Clicking");
           target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
           target.z = transform.position.z;
           if (!move)
               move = true;
       }

       if (move)
       {
           transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime);
           Debug.Log("Moving");
       }
   }
}

Questo è lo script, il problema però è che la posizione (target) è rilevata in base alla camera, infinitamente più piccola del canvas nell'ambiente 2D, quindi di conseguenza quando vado a cliaccare l'immagine si sposta sulla camera, ma con il dovuto spostamento, seppur piccolo perché la camera è piccola.
Avrei quindi bisogno di sapere come aggiustare lo script o in eventuale ingrandire la camera della stessa dimensione dle canvas nell'ambiente 2D.
Grazie a tutti in anticipo. Big Grin


RE: Movimento oggetto 2D nel canvas - Aconeron - 25-04-2017

Ho risolto banalmente ingrandendo la camera e posizionandola perfettamente sui limiti del canvas con l'opzione size nell'inspector della camera Smile