Moving an Object - The right way. 2D

Hello everyone, hope you’re doing good!

So, I came across a problem of mine. I wanted to addForce to an Object. Here’s the Question:

Now, I did a Debug.Log on the ball’s velocity when it’s moving but I found out it was (0,0)

So my question is this, is this the best way to move an object?

The idea is that the gameObject(Ball) goes towards the player when inRadius.

Here’s how Im moving:

void Update (){

		transform.position = Vector3.MoveTowards(transform.position, playerPos, moveSpeed * Time.deltaTime);

		if (transform.position == playerPos) {

		if (Time.time - _startTimer >= 5) {



So, timer is there so It doesn’t constantly get the same position over and over.

GetPlayerPos does this:

public void GetPlayerPos (){

		playerPos = GameObject.Find ("Player").transform.position;
		_startTimer = Time.time;


Now 2 quick questions:

1)Am I moving my object the best way towards my player?(I want to be able to use physics and such…)
2)If Im doing this the right way, why does the object don’t have any velocity?

Thank you for your time!!!

The right way to move an object with physics is RigidBody.AddForce or RigidBody.velocity.

Using transform.position causes an object to ‘teleport’ and will override any physics you use.