Files
HauntedBloodlines/Assets/Scripts/AlternateUniverse/DimensionalFractureFader.cs
2025-05-29 22:31:40 +03:00

47 lines
1.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections;
using UnityEngine;
public class DimensionalFractureFader : MonoBehaviour
{
public Transform objectToReveal; // Το αντικείμενο που έχει το υλικό
public float maxDistance = 5f; // Μέγιστη απόσταση όπου το εφέ είναι ενεργό
public float fadeSpeed = 2f; // Ταχύτητα μετάβασης του Fade
private Material objectMaterial; // Υλικό του αντικειμένου
void Start()
{
if (objectToReveal != null)
{
// Παίρνουμε το Material από το αντικείμενο που θα αποκαλυφθεί
Renderer renderer = objectToReveal.GetComponent<Renderer>();
if (renderer != null)
{
objectMaterial = new Material(renderer.material);
renderer.material = objectMaterial;
}
}
}
void Update()
{
if (objectToReveal == null || objectMaterial == null)
return;
// Υπολογισμός απόστασης παίκτη-αντικειμένου
float distance = Vector3.Distance(PlayerManager.GetInstance().playerGameObj.transform.position, objectToReveal.position);
// Κανονικοποίηση της απόστασης (0 = κοντά, 1 = μακριά)
float distanceFactor = Mathf.Clamp01(distance / maxDistance);
// Υπολογισμός του νέου fade value από 0 (μακριά) έως 10 (κοντά)
float newFade = Mathf.Lerp(15f, 0f, distanceFactor);
// Σταδιακή αλλαγή της τιμής fade
float currentFade = objectMaterial.GetFloat("_CausticsStrength");
float updatedFade = Mathf.Lerp(currentFade, newFade, Time.deltaTime * fadeSpeed);
objectMaterial.SetFloat("_CausticsStrength", updatedFade);
}
}