Files
AppleHillsProduction/Assets/Scripts/DamianExperiments/SoundBirdPuzzleSection/Sound Generator.cs
Damian ceca90e058 Sound Bird First iteration Complete
Sound generator creates sound, bird gets spooked, is no longer interactable, and comes back after flying around.
2025-09-23 15:51:25 +02:00

63 lines
2.0 KiB
C#

using Pixelplacement;
using UnityEngine;
public class SoundGenerator : MonoBehaviour
{
[SerializeField] private Sprite enterSprite;
[SerializeField] private Sprite exitSprite;
[SerializeField] private AudioClip enterSound;
[SerializeField] private AudioSource audioSource;
[SerializeField] private StateMachine soundBirdSMRef;
[SerializeField] private soundBird_Spooked_FlyBehaviour spookedBirdRef;
private bool playerInside = false;
private SpriteRenderer spriteRenderer;
void Awake()
{
spriteRenderer = GetComponent<SpriteRenderer>();
if (spriteRenderer != null && exitSprite != null)
{
spriteRenderer.sprite = exitSprite; // Set to default on start
}
}
private void OnTriggerEnter2D(Collider2D other)
{
if (!playerInside && other.CompareTag("Player"))
{
playerInside = true;
Debug.Log("Player entered SoundGenerator trigger!");
if (spriteRenderer != null && enterSprite != null)
{
spriteRenderer.sprite = enterSprite;
}
if (audioSource != null && enterSound != null)
{
audioSource.PlayOneShot(enterSound);
}
if (soundBirdSMRef != null && soundBirdSMRef.currentState.name == "SoundBird")
{
soundBirdSMRef.ChangeState("SoundBirdSpooked"); // Replace with your actual method/state
spookedBirdRef.initiateTweenSpline();
}
// Play sound and change animation/state here if needed
}
}
private void OnTriggerExit2D(Collider2D other)
{
if (playerInside && other.CompareTag("Player"))
{
playerInside = false;
Debug.Log("Player exited SoundGenerator trigger!");
if (spriteRenderer != null && exitSprite != null)
{
spriteRenderer.sprite = exitSprite;
}
// Reset animation/state here if needed
}
}
}