diff options
| author | chai <215380520@qq.com> | 2023-11-02 11:51:31 +0800 |
|---|---|---|
| committer | chai <215380520@qq.com> | 2023-11-02 11:51:31 +0800 |
| commit | 7f493f682503f5186308de7b8f74b5b49233cfe4 (patch) | |
| tree | 8a91e2056bc79788ee4735dce88b8d516ba12beb /GameCode/SuperSimpleOceanAnimation.cs | |
+init
Diffstat (limited to 'GameCode/SuperSimpleOceanAnimation.cs')
| -rw-r--r-- | GameCode/SuperSimpleOceanAnimation.cs | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/GameCode/SuperSimpleOceanAnimation.cs b/GameCode/SuperSimpleOceanAnimation.cs new file mode 100644 index 0000000..f30e181 --- /dev/null +++ b/GameCode/SuperSimpleOceanAnimation.cs @@ -0,0 +1,47 @@ +using System; +using UnityEngine; + +public class SuperSimpleOceanAnimation : MonoBehaviour +{ + private Vector3 startPosition; + + private float time; + + [SerializeField] + private Vector3 waveHeight; + + [SerializeField] + private float waveFrequency = 0.5f; + + [SerializeField] + private Vector3 waveSideways; + + [SerializeField] + private float waveSidewaysFrequency = 0.5f; + + [SerializeField] + private Material targetMaterial; + + [SerializeField] + private float panSpeed = 2f; + + private Vector2 offset; + + private void Start() + { + startPosition = base.transform.position; + } + + private void Update() + { + time += Time.deltaTime; + offset.x = time * panSpeed; + base.transform.position = startPosition; + base.transform.position += waveHeight * Mathf.Sin(time * waveFrequency * MathF.PI); + base.transform.position += waveSideways * Mathf.Sin(time * waveSidewaysFrequency * MathF.PI); + if (targetMaterial != null) + { + targetMaterial.SetTextureOffset("_BaseMap", offset); + } + } +} |
