Files
UltimateFishing2020/Assets/Scripts/Assembly-CSharp/UltimateWater/Samples/DemoObjects.cs
2026-03-04 10:03:45 +08:00

107 lines
2.1 KiB
C#

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<WaterForce.Data>
{
new WaterForce.Data
{
Position = base.transform.position,
Force = _Force * Mathf.Cos(Time.timeSinceLevelLoad * _Speed)
}
}, _Radius);
}
}
}