Started on the sound generator section of the soundbird puzzle, plus organized folders.
54 lines
1.6 KiB
C#
54 lines
1.6 KiB
C#
using UnityEngine;
|
|
|
|
public class SoundGenerator : MonoBehaviour
|
|
{
|
|
[SerializeField] private Sprite enterSprite;
|
|
[SerializeField] private Sprite exitSprite;
|
|
[SerializeField] private AudioClip enterSound;
|
|
[SerializeField] private AudioSource audioSource;
|
|
|
|
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);
|
|
}
|
|
// 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
|
|
}
|
|
}
|
|
}
|