46 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|