Error `UnityEngine.Component' does not contain a definition

I’m getting errors in unity with the next code

using UnityEngine;
using System.Collections;

public class Floater : MonoBehaviour {
	public float waterLevel, floatHeight;
	public Vector3 buoyancyCentreOffset;
	public float bounceDamp;
	
	

	void FixedUpdate () {
		Vector3 actionPoint = transform.position + transform.TransformDirection(buoyancyCentreOffset);
		float forceFactor = 1f - ((actionPoint.y - waterLevel) / floatHeight);
		
		if (forceFactor > 0f) {
			Vector3 uplift = -Physics.gravity * (forceFactor - rigidbody.velocity.y * bounceDamp);
			rigidbody.AddForceAtPosition(uplift, actionPoint);
		}
	}
}

I get this two errors, one with “velocity” and the other one with “AddForceAtPosition”

alt text

If someone could help me, thank you!

I think that you need to replace all of your uses of rigidbody with GetComponent<Rigidbody>().

The FixedUpdate portion would look like:

     void FixedUpdate () {
         Vector3 actionPoint = transform.position + transform.TransformDirection(buoyancyCentreOffset);
         float forceFactor = 1f - ((actionPoint.y - waterLevel) / floatHeight);
         
         if (forceFactor > 0f) {
             Vector3 uplift = -Physics.gravity * (forceFactor - GetComponent<Rigidbody>().velocity.y * bounceDamp);
             GetComponent<Rigidbody>().AddForceAtPosition(uplift, actionPoint);
         }
     }

You could also just use a Rigidbody variable and assign it in the editor or Start().