You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.3 KiB
C#

using UnityEngine;
using UnityEngine.UI;
public class FeedingManager : MonoBehaviour
{
public static FeedingManager Instance; // Singleton
public Image appetiteBar;
public Transform moleTransform; // The capsule or model you want to rotate
public float rotateAmount = 30f;
public float shakeDuration = 0.5f;
private bool isShaking = false;
void Awake()
{
Instance = this;
}
public bool TryFeed()
{
if (appetiteBar.fillAmount >= 1f)
{
if (!isShaking) StartCoroutine(ShakeHead());
return false; // Reject the food
}
appetiteBar.fillAmount += 0.1f;
appetiteBar.fillAmount = Mathf.Min(appetiteBar.fillAmount, 1f);
return true; // Accept the food
}
private System.Collections.IEnumerator ShakeHead()
{
isShaking = true;
float timer = 0f;
Quaternion originalRotation = moleTransform.rotation;
while (timer < shakeDuration)
{
float angle = Mathf.Sin(timer * 20f) * rotateAmount;
moleTransform.rotation = originalRotation * Quaternion.Euler(0f, angle, 0f);
timer += Time.deltaTime;
yield return null;
}
moleTransform.rotation = originalRotation;
isShaking = false;
}
}