Isoulated/Assets/Scripts/New/NewCheckPoint.cs
Gerard Gascón 001bb14f16 init
2025-04-24 17:19:36 +02:00

46 lines
1.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewCheckPoint : MonoBehaviour{
[SerializeField, Range(0f, 10f)] float radius = 6f;
[SerializeField] GameObject lightToTurn;
bool triggered;
bool alreadyTriggered;
public int checkPointNumber { set; get; }
[SerializeField] MeshRenderer[] partsToTurnOn = default;
[SerializeField] Material onMat = default;
[SerializeField] Material offMat = default;
[SerializeField] LayerMask playerMask = default;
PlayerMovement player;
// Start is called before the first frame update
void Awake(){
lightToTurn.SetActive(false);
player = FindObjectOfType<PlayerMovement>();
for (int i = 0; i < partsToTurnOn.Length; i++){
partsToTurnOn[i].material = offMat;
}
}
// Update is called once per frame
void Update(){
triggered = Physics.CheckSphere(transform.position, radius, playerMask);
if(triggered && !alreadyTriggered){
AudioManager.instance.Play("CheckPoint");
gameObject.layer = 10;
lightToTurn.SetActive(true);
PlayerPrefs.SetInt("CheckPoint", checkPointNumber);
alreadyTriggered = true;
for (int i = 0; i < partsToTurnOn.Length; i++){
partsToTurnOn[i].material = onMat;
}
}
}
}