Здравствуйте, вопрос такой, как можно этот скрипт переделать для 3д обьекта, который будет в 2д игры, чтобы он двигался так же, как и 2д обьект до этого с этим скриптом?
{
Rigidbody2D rb2D;
Vector3 oldDirection;
float speed = 21.5f;
void Start()
{
rb2D = GetComponent<Rigidbody2D>();
// Это можно поставить в инспекторе
rb2D.isKinematic = true;
rb2D.collisionDetectionMode = CollisionDetectionMode2D.Continuous;
}
void Update()
{
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
switch (touch.phase)
{
case TouchPhase.Began:
oldDirection = GetWorldTouchPosition(touch) - transform.position;
break;
case TouchPhase.Ended:
rb2D.angularVelocity = 0.0f;
break;
case TouchPhase.Moved:
var currentDirection = GetWorldTouchPosition(touch) - transform.position;
float angle = Vector2.SignedAngle(oldDirection, currentDirection);
rb2D.angularVelocity = Mathf.Lerp(rb2D.angularVelocity, angle * speed, Time.deltaTime * 3.0f);
oldDirection = currentDirection;
break;
}
}
}
Vector3 GetWorldTouchPosition(Touch touch)
{
return Camera.main.ScreenToWorldPoint(touch.position);
}
}