Reset position for rigidbody2d

I trying to learn Unity and make volleyball game like Arcade Volleball. After each round I reset position of each player to its start position by calling ResetPosition method.

public class BaseController : MonoBehaviour
    private Vector3 spawnPoint;

    private void Start()
        spawnPoint = transform.position;

    public void ResetPosition()
        rigidbody2D.velocity =;
        transform.position = spawnPoint;


Everything works fine, but do not leave me thinking that I did something wrong. I have 2 questions:

  1. Is it normal than I change position directly? Because I don’t know how to change it in another way.

  2. So does it mean than there is no overheap in performance of physic engine if I change position for object with collider but without rigidbody?

Rigidbody2D does have IsKinematic checkbox.

There is not problem doing what you are doing. Even if it was a costly performance I would not matter when done once in a while. Problem is if doing in every frame. That goes for about any thing related to micro optimization.