using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Rendering.HighDefinition; public class Floating : MonoBehaviour { public Rigidbody rb; public float depthBefSub; public float displacementAnt; public int floaters; public float waterOrag; public float waterAngularOrag; public WaterSurface water; WaterSearchParameters Search; WaterSearchResult SearchResult; private void FixedUpdate() { rb.AddForceAtPosition(Physics.gravity / floaters, transform.position, ForceMode.Acceleration); Search.startPosition = transform.position; water.FindWaterSurfaceHeight(Search, out SearchResult); if (transform.position.y < SearchResult.height) { float displacementMulti = Mathf.Clamp01(SearchResult.height - transform.position.y / depthBefSub) * displacementAnt; rb.AddForceAtPosition(new Vector3(0f, Mathf.Abs(Physics.gravity.y) * displacementMulti, 0f), transform.position, ForceMode.Acceleration); rb.AddForce(displacementMulti * -rb.velocity * waterOrag * Time.fixedDeltaTime, ForceMode.VelocityChange); rb.AddForce(displacementMulti * -rb.angularVelocity * waterAngularOrag * Time.fixedDeltaTime, ForceMode.VelocityChange); } } }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)