I decided to move objects with the mouse. Everything worked out, but I decided to make everything more realistic and added Hingle Joint 2d And it doesn’t work at all. If you disable ConnectedBody in the code, then the object will attach with its Achor in the wrong direction at all
Ps: I tried to change the value of Mouse to MouseTransofrm
CODE :
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DragItems : MonoBehavior
{
public Rigidbody2D selectedObject;
public HingeJoint2D StopCenter = null;
public Rigidbody2D obj;
public Vector2 Mouse;
public Transform Mousetransform;
vector3 offset;
Vector3 mousePosition;
public float maxSpeed=10;
Vector2mouseForce;
Vector3 lastPosition;
void Update()
{
Mouse = Mousetransform.transform.position;
mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (selectedObject)
{
mouseForce = (mousePosition - lastPosition) / Time.deltaTime;
mouseForce = Vector2.ClampMagnitude(mouseForce, maxSpeed);
lastPosition = mousePosition;
}
if (Input.GetMouseButtonDown(0))
{
Collider2D targetObject = Physics2D.OverlapPoint(mousePosition);
if (targetObject)
{
selectedObject = targetObject.transform.gameObject.GetComponent();
offset = selectedObject.transform.position - mousePosition;
}
}
if (Input.GetMouseButtonUp(0) && selectedObject)
{
selectedObject.velocity = Vector2.zero;
selectedObject.AddForce(mouseForce, ForceMode2D.Impulse);
selectedObject = null;
}
}
void FixedUpdate()
{
if (selectedObject)
{
selectedObject.MovePosition(mousePosition + offset);
StopCenter = selectedObject.GetComponent();
StopCenter.enabled = true;
StopCenter.connectedBody = obj;
StopCenter anchor = Mouse;
}
}
}