using System.Collections.Generic; using UnityEngine; namespace UltimateWater.Samples { public class DemoObjects : MonoBehaviour { private enum Type { FishingRod = 0, Boat = 1, UserInput = 2, Generator = 3 } [SerializeField] private float _Radius = 1f; [SerializeField] private float _Speed = 1f; [SerializeField] private Vector3 _Center; [SerializeField] private Type _Type; [SerializeField] private float _Force; [SerializeField] private float _DisableTime = 1024f; private float _Angle; private void Awake() { _Center = base.transform.position; Invoke("Disable", _DisableTime); } private void FixedUpdate() { switch (_Type) { case Type.Boat: Boat(); break; case Type.FishingRod: FishingRod(); break; case Type.UserInput: UserInput(); break; case Type.Generator: Generator(); break; } } private void Disable() { base.enabled = false; } private void FishingRod() { _Angle += _Speed * Time.deltaTime; base.transform.position = _Center + _Radius * new Vector3(Mathf.Cos(_Angle), 0f, Mathf.Sin(_Angle)); base.transform.eulerAngles = new Vector3(0f, (0f - _Angle) * 57.29578f, 0f); } private void Boat() { base.transform.position += base.transform.forward * _Speed * Time.deltaTime; } private void UserInput() { float num = Input.GetAxis("Horizontal") * _Speed * Time.deltaTime; float num2 = Input.GetAxis("Vertical") * _Speed * Time.deltaTime; base.transform.position += base.transform.forward * num2; base.transform.position += base.transform.right * num; if (Input.GetKey(KeyCode.Q)) { base.transform.position -= base.transform.up * _Speed * Time.deltaTime * 0.33f; } if (Input.GetKey(KeyCode.E)) { base.transform.position += base.transform.up * _Speed * Time.deltaTime * 0.33f; } } private void Generator() { WaterRipples.AddForce(new List { new WaterForce.Data { Position = base.transform.position, Force = _Force * Mathf.Cos(Time.timeSinceLevelLoad * _Speed) } }, _Radius); } } }