Sound generator creates sound, bird gets spooked, is no longer interactable, and comes back after flying around.
63 lines
2.0 KiB
C#
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
|
|
}
|
|
}
|
|
}
|