61 lines
1.9 KiB
C#
61 lines
1.9 KiB
C#
using Core;
|
|
using Pixelplacement;
|
|
using UnityEngine;
|
|
|
|
public class SoundGenerator : MonoBehaviour
|
|
{
|
|
[SerializeField] private Sprite enterSprite;
|
|
[SerializeField] private Sprite exitSprite;
|
|
[SerializeField] private AudioClip enterSound;
|
|
[SerializeField] private AppleAudioSource audioSource;
|
|
[SerializeField] private StateMachine soundBirdSMRef;
|
|
[SerializeField] private soundBird_CanFly soundbirdHearingCheck;
|
|
|
|
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;
|
|
// Logging.Debug("Player entered SoundGenerator trigger!");
|
|
if (spriteRenderer != null && enterSprite != null)
|
|
{
|
|
spriteRenderer.sprite = enterSprite;
|
|
}
|
|
if (audioSource != null && enterSound != null)
|
|
{
|
|
audioSource.audioSource.PlayOneShot(enterSound);
|
|
}
|
|
if (soundBirdSMRef != null && soundBirdSMRef.currentState.name == "SoundBird" && soundbirdHearingCheck.canFly == true)
|
|
{
|
|
soundBirdSMRef.ChangeState("SoundBirdTakeoff");
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
private void OnTriggerExit2D(Collider2D other)
|
|
{
|
|
if (playerInside && other.CompareTag("Player"))
|
|
{
|
|
playerInside = false;
|
|
// Logging.Debug("Player exited SoundGenerator trigger!");
|
|
if (spriteRenderer != null && exitSprite != null)
|
|
{
|
|
spriteRenderer.sprite = exitSprite;
|
|
}
|
|
}
|
|
}
|
|
}
|