2026-06-09 룸 프로토타입 디자인 (진행중)
This commit is contained in:
82
Assets/ToonScapes/Shared Assets/Scripts/WindManager.cs
Normal file
82
Assets/ToonScapes/Shared Assets/Scripts/WindManager.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace ToonScapes.tools
|
||||
{
|
||||
[ExecuteInEditMode]
|
||||
public class WindSettings : MonoBehaviour
|
||||
{
|
||||
// Fixed wind direction
|
||||
[SerializeField] private Vector3 windDirection = new Vector3(1, 0, 0); // Set your fixed wind direction here
|
||||
|
||||
// Wind variables
|
||||
[SerializeField] [Range(0.0F, 20.0F)] private float windStrength = 1.0f;
|
||||
[SerializeField] [Range(0.0F, 20.0F)] private float windScale = 1.0f;
|
||||
[SerializeField] [Range(0.0F, 20.0F)] private float windSpeed = 1.0f;
|
||||
[SerializeField] [Range(0.0F, 20.0F)] private float windJitter = 1.0f;
|
||||
|
||||
// Global Noise Texture
|
||||
[SerializeField] private Texture noiseTexture;
|
||||
|
||||
// Previous values to check for changes
|
||||
private Vector3 previousWindDirection;
|
||||
private float previousWindStrength;
|
||||
private float previousWindScale;
|
||||
private float previousWindSpeed;
|
||||
private float previousWindJitter;
|
||||
private Texture previousNoiseTexture; // Previous noise texture value
|
||||
|
||||
void Start()
|
||||
{
|
||||
// Initialize previous values
|
||||
previousWindDirection = windDirection;
|
||||
previousWindStrength = windStrength;
|
||||
previousWindScale = windScale;
|
||||
previousWindSpeed = windSpeed;
|
||||
previousWindJitter = windJitter;
|
||||
previousNoiseTexture = noiseTexture; // Initialize previous noise texture
|
||||
|
||||
// Set initial shader values
|
||||
UpdateShaderVariables();
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
// Check if any wind settings have changed
|
||||
if (HasWindSettingsChanged())
|
||||
{
|
||||
UpdateShaderVariables();
|
||||
}
|
||||
}
|
||||
|
||||
private bool HasWindSettingsChanged()
|
||||
{
|
||||
// Compare current values with previous values
|
||||
return windDirection != previousWindDirection ||
|
||||
windStrength != previousWindStrength ||
|
||||
windScale != previousWindScale ||
|
||||
windSpeed != previousWindSpeed ||
|
||||
windJitter != previousWindJitter ||
|
||||
noiseTexture != previousNoiseTexture; // Check for noise texture change
|
||||
}
|
||||
|
||||
private void UpdateShaderVariables()
|
||||
{
|
||||
// Set wind settings in the shader
|
||||
Shader.SetGlobalVector("ToonScapesGlobalWindDirection", windDirection);
|
||||
Shader.SetGlobalFloat("ToonScapesGlobalWindStrength", windStrength);
|
||||
Shader.SetGlobalFloat("ToonScapesGlobalWindScale", windScale);
|
||||
Shader.SetGlobalFloat("ToonScapesGlobalWindSpeed", windSpeed);
|
||||
Shader.SetGlobalFloat("ToonScapesGlobalWindJitter", windJitter);
|
||||
Shader.SetGlobalTexture("ToonScapesGlobalNoiseTexture", noiseTexture); // Set global noise texture
|
||||
|
||||
// Update previous values
|
||||
previousWindDirection = windDirection;
|
||||
previousWindStrength = windStrength;
|
||||
previousWindScale = windScale;
|
||||
previousWindSpeed = windSpeed;
|
||||
previousWindJitter = windJitter;
|
||||
previousNoiseTexture = noiseTexture; // Update previous noise texture
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user