using UnityEngine; public class ApplyDistortion : MonoBehaviour { // physical effector transform public Transform physical_effector; // virtual effector transform public Transform virtual_effector; // static target transform public Transform static_target; public float distance_gain = -0.5f; public float distortion_range = 1; private DistortionModel distortion_model; private void LateUpdate () { virtual_effector.position = distortion_model.GetVirtualPosition(physical_effector.position); } private void OnValidate() { if(Application.isPlaying) distortion_model = new DistortionModel(static_target.position, distance_gain, distortion_range); } private void OnDrawGizmos() { if (Application.isPlaying) { // draws a line from target to p_max Debug.DrawLine(static_target.position, distortion_model.p_max, Color.white); } } }