void FixedUpdate() { waweHeight = WaweManager.GetWaweHeight(transform.position.x); if (transform.position.y < waweHeight) { float displacementMultiplier = Mathf.Clamp01((waweHeight - transform.position.y) / depthBeforeSubmerged) * displacementAmount; rigidbody.AddForceAtPosition(new Vector3(0f, Mathf.Abs(Physics.gravity.y) * displacementMultiplier, 0f), transform.position, ForceMode.Acceleration); } }
private void Awake() { if (instance == null) { instance = this; } else if (instance != this) { Destroy(this); } }
void Update() { Vector3[] vertices = mesh.vertices; for (int i = 0; i < vertices.Length; i++) { vertices[i].y = WaweManager.GetWaweHeight(transform.position.x + vertices[i].x); } mesh.vertices = vertices; mesh.RecalculateNormals(); }