Files
FebGameJam/Assets/Scripts/Trigger.cs
T

82 lines
2.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//to implement inheritance
public abstract class Trigger : MonoBehaviour
{
//tags for the trigger
public bool forceInteract;
public bool repeatable;
bool isActive;
//only worry about this if it is not repeatable
bool hasOccurred;
public int value;
// Start is called before the first frame update
void Start()
{
hasOccurred = false;
}
//checks if player is in range of the trigger
private void OnTriggerStay2D(Collider2D other) {
if(other.CompareTag("Player")) {
//Debug.Log("entered");
isActive = true;
}
// else {
// isActive = false;
// Debug.Log("exit");
// if(forceInteract && repeatable) {
// hasOccurred = false;
// }
// }
}
private void OnTriggerExit2D(Collider2D other) {
if(other.CompareTag("Player")) {
isActive = false;
//Debug.Log("exit");
}
if(forceInteract && repeatable) {
hasOccurred = false;
}
}
// Update is called once per frame
public void Update()
{
// Debug.Log("testr");
//checks if conditions are right
if(isActive && !hasOccurred)
{
//executes action upon entering
if(forceInteract)
{
Action();
if(!repeatable) {
hasOccurred = true;
isActive = false;
}
}
//only executes action if input is pressed
else
{
if(Input.GetKeyDown(KeyCode.E)) {
//Debug.Log("action");
Action();
if(!repeatable)
{
hasOccurred = true;
}
}
}
}
}
public abstract void Action();
}