107 lines
2.1 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|