How can I move an object without translate or addforce?

I need to move a platform in a 2d game however translate makes it go through my CharacterController player if I move the platform up. The platform is not a rigidbody as I don’t like the smooth acceleration and deceleration they have. I have seen scripts where they move objects with transform.position but I can’t find any. I need it to move in the same way that translate makes it move.

Moving your platform using transform.position is likely to have the same problems as transform.Translate(). To get rigidbody movement without the smooth acceleration of AddForce() just assign the velocity directly. For example to go in the up direction:

rigidbody.velocity = Vector3.up * speed;

This will cause an immediate jump to the specified velocity without any acceleration. If you want this velocity to continue even after other forces come into play (such as a collision with another Rigidbody) you can assign it in FixedUpdate().

Try using Vector3.MoveTowards to move your object, the docs have an example of how to use it here:

I always use the following script to change the location of an object:

transform.position = Vector3(X, Y, Z);

make sure to change the X, Y, and Z terms to where you want your object to be transformed.