Search Unity

  1. We are migrating the Unity Forums to Unity Discussions. On July 12, the Unity Forums will become read-only. On July 15, Unity Discussions will become read-only until July 18, when the new design and the migrated forum contents will go live. Read our full announcement for more information and let us know if you have any questions.

Resolved Dragging UI while moving not working right

Discussion in 'Scripting' started by VadanaPon, Nov 28, 2022.

  1. VadanaPon

    VadanaPon

    Joined:
    Jul 5, 2022
    Posts:
    45
    So, the canvas is in world space as a child of the camera.
    The problem is that if I move or rotate the camera the UI goes all over the place, like this:


    This is the code as of yet, I'm not sure how to fix it:
    Code (CSharp):
    1. using UnityEngine;
    2. using UnityEngine.EventSystems;
    3.  
    4. public class Draggable : MonoBehaviour, IDragHandler
    5. {
    6.     public Camera cam;
    7.  
    8.     public void OnDrag(PointerEventData data)
    9.     {
    10.         Vector3 mouseWorld = cam.ScreenToWorldPoint(new Vector3(MouseObject.screenPos.x, MouseObject.screenPos.y, transform.position.z));
    11.         mouseWorld.z = transform.position.z;
    12.         transform.position = mouseWorld;
    13.     }
    14. }
    15.  
    Thanks in advance
     
    Last edited: Nov 28, 2022
  2. VadanaPon

    VadanaPon

    Joined:
    Jul 5, 2022
    Posts:
    45
    Solved it, the z part of the cam.ScreenToWorldPoint has to be a fixed number, as it is the distance from the camera
     
    Last edited: Nov 29, 2022