25-04-2017, 08:41 PM
Ciao a tutti, ho un problema, devo muovere un'immagine 2D appartenente al canvas a seconda della posizione del mouse.
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.
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.