Здравствуйте, я с трудом пытаюсь включить и отключить кинематику твердого тела. 2d Я проводил некоторые эксперименты, но, похоже, ничего не получилось. Это код без моих экспериментов о том, как включить и отключить
* 1002. * для фона, когда я играю в головоломку 2d, он использует коробочный коллайдер 2d для сопоставления фигур, у меня есть много фигур, и я хочу, чтобы они падали под действием силы тяжести, касались их и перетаскивали на свои места, для этого я добавилтвердое тело, и оно отлично работает на фалл, но мне нужно, чтобы оно было кинематическим, чтобы я мог перетащить его
[SerializeField]
private Transform El_carmenPlace;
private Vector2 initialPosition;
private float deltaX, deltaY;
public static bool locked;
private void Update()
{
if (Input.touchCount > 0 && !locked)
{
Touch touch = Input.GetTouch(0);
Vector2 touchPos = Camera.main.ScreenToWorldPoint(touch.position);
switch (touch.phase)
{
case TouchPhase.Began:
if (GetComponent<Collider2D>() == Physics2D.OverlapPoint(touchPos))
{
deltaX = touchPos.x - transform.position.x;
deltaY = touchPos.y - transform.position.y;
}
break;
case TouchPhase.Moved:
if (GetComponent<Collider2D>() == Physics2D.OverlapPoint(touchPos))
transform.position = new Vector2(touchPos.x - deltaX, touchPos.y - deltaY);
break;
case TouchPhase.Ended:
initialPosition = transform.position;
if (Mathf.Abs(transform.position.x - El_carmenPlace.position.x) <= 0.5f &&
Mathf.Abs(transform.position.y - El_carmenPlace.position.y) <= 0.5f)
{
transform.position = new Vector2(El_carmenPlace.position.x, El_carmenPlace.position.y);
locked = true;
}
else
{
transform.position = new Vector2(initialPosition.x, initialPosition.y);
}
break;
}
}
}
}
Я попытался включить отключить ragdoll, сценарии, что единство, я создал пустой объект ипытался добавить часть головоломки, но я не могу? использует жесткое тело 2d Незнайка, если он движется как твердое тело ...