StellarXipher/Assets/Scripts/LightSwitchInteraction.cs
EthanPisani 7d1aaa992f
All checks were successful
Build project / Build for (StandaloneLinux64, 6000.0.37f1) (push) Successful in 4m46s
Build project / Build for (StandaloneWindows64, 6000.0.37f1) (push) Successful in 4m32s
Build project / Publish to itch.io (StandaloneLinux64) (push) Successful in 5s
Build project / Publish to itch.io (StandaloneWindows64) (push) Successful in 6s
added - door animations - emergency lights, lever, sounds - amibent sounds
2025-03-15 00:16:15 -04:00

98 lines
3.1 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class LightSwitchInteraction : MonoBehaviour
{
public CeilingLightController[] ceilingLights;
public TMP_Text interactionPrompt;
private bool isLightsFixed = false;
private Outline outline;
[SerializeField] private Animator leverAnimator;
[SerializeField] private AudioClip leverSound;
[SerializeField] private string animationFile = "DoorAnimation.013";
[SerializeField] private Animator myDoor = null;
void Awake()
{
outline = GetComponent<Outline>();
if (outline != null)
{
outline.enabled = true;
}
if (interactionPrompt != null)
{
interactionPrompt.enabled = false;
}
}
void Update()
{
if (!isLightsFixed)
{
Ray ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0));
if (Physics.Raycast(ray, out RaycastHit hit, 10f))
{
if (hit.collider.gameObject == gameObject)
{
if (interactionPrompt != null)
{
interactionPrompt.text = "Left click to turn emergency power on";
interactionPrompt.enabled = true;
}
if (Input.GetMouseButtonDown(0))
{
foreach (CeilingLightController light in ceilingLights)
{
light.StopFading();
}
LightSwitchManager.IsLightSwitchActivated = true;
isLightsFixed = true;
if (outline != null)
{
outline.enabled = false;
}
if (interactionPrompt != null)
{
interactionPrompt.enabled = false;
}
// Play Animation for lever
if (leverAnimator != null)
{
leverAnimator.Play("EmergeLeverPull",0,0.0f);
}
// Play Sound for lever
if (leverSound != null)
{
SoundFXManager.instance.PlaySound(leverSound, transform, 2.0f);
}
// open door
if (myDoor != null)
{
myDoor.Play(animationFile, 0, 0.0f);
}
}
}
else
{
if (interactionPrompt != null)
{
interactionPrompt.enabled = false;
}
}
}
else
{
if (interactionPrompt != null)
{
interactionPrompt.enabled = false;
}
}
}
}
}