Error CS1612
I understand that others have had this problem and the answers I am seeing are stating that I need to make a temporary variable that effects whatever I need to edit. However, I am doing this and still getting the same error.
 void StopBall ()
 {
     if (rigidbody.velocity.x <= stopVelocityThreshold.x && rigidbody.velocity.x != 0f) {
         float tempX = 0;
         //Error occurs here
         rigidbody.velocity.x = tempX;
         Debug.Log("X Velocity Stopped");
     }
     if (rigidbody.velocity.z <= stopVelocityThreshold.z && rigidbody.velocity.z != 0f) {
         float tempZ = 0;
         //Error occurs here
         rigidbody.velocity.z = tempZ;
         Debug.Log("Z Velocity Stopped");
     }
     if (rigidbody.velocity == Vector3.zero) {
         CancelInvoke();
     }
 }
 
               I don't understand what I am doing wrong. Any help would be appreciated.
Answer by btmedia14 · Aug 21, 2016 at 02:55 PM
@BenLuker The velocity property retrieved in this way must be assigned to a variable before its contents can be modified - its a C# thing for assignment of value types using copies not reference to original.
A couple of options
1) Create a Vector3 variable to hold the vector, modify as needed and reassign back to rigidbody
 Vector3 ballVelocity = rigidbody.velocity;
 ballVelocity.x = 0;              //or also update ballVelocity.y, ballVelocity.z if needed
 rigidbody.velocity = ballVelocity;
 
               2) Use rigidbody.velocity.Set(x,y,z) method instead. So, if only changing x value:
 rigidbody.velocity.Set(0, rigidbody.velocity.y, rigidbody.velocity.z);
 
               Note, Unity recommends, in most cases, to not modify velocity vector of a rigidbody as it can interfere with the physics simulations. https://docs.unity3d.com/ScriptReference/Rigidbody-velocity.html
Your answer
 
             Follow this Question
Related Questions
Can you make a global reference to a rigid body? 0 Answers
Proper way to set a RigidBody's maximum velocity 1 Answer
There is no velocity in my rigidbody! 0 Answers
Float speed not getting updated on FixedUpdate nor Updated and OnAnimatorMove 1 Answer
How to add rigid body forces and collision detection to SimpleCameraController 2 Answers