using System; using System.Collections; using UnityEngine; using Animation = FramedAnimator.Animation; using Animator = FramedAnimator.Animator; using Random = UnityEngine.Random; namespace View.Scene { public class GardenFlower : MonoBehaviour { [SerializeField] private SpriteRenderer sprite; [SerializeField] private Animation[] randomAnimation; [SerializeField] private Animator animator; private static readonly int WindOffset = Shader.PropertyToID("_WindOffset"); [SerializeField] private float randomRotation; [SerializeField] private float startRandomMaxDelay; private void Awake() { transform.rotation = Quaternion.Euler(0f, 0f, Random.Range(-randomRotation, randomRotation)); } private IEnumerator Start() { sprite.material.SetFloat(WindOffset, Random.Range(0f, 2f * Mathf.PI)); animator.ChangeAnimation(randomAnimation[Random.Range(0, randomAnimation.Length)]); yield return new WaitForSeconds(Random.Range(0f, startRandomMaxDelay)); animator.PlayUntil(1f); } } }