89 lines
2.9 KiB
C#
89 lines
2.9 KiB
C#
using UnityEngine;
|
|
|
|
namespace Artngame.SKYMASTER
|
|
{
|
|
public class volumeCloudsTornadoControl : MonoBehaviour
|
|
{
|
|
public bool copyCloudParamsToRefl;
|
|
|
|
public CloudScript volumeclouds;
|
|
|
|
public CloudScriptTRANSP volumecloudsTRANSP;
|
|
|
|
public CloudScript CloudReflection;
|
|
|
|
public Material grassMat;
|
|
|
|
public bool applyGrassVortex;
|
|
|
|
public Material waterMat;
|
|
|
|
public bool applyWaterVortex;
|
|
|
|
public float vortexRadius = 115f;
|
|
|
|
public Vector4 vortexInteractAmpFreqRadial = new Vector4(-107f, 11f, 39f, 318f);
|
|
|
|
public Transform tornadoTop;
|
|
|
|
public Transform tornadoBottom;
|
|
|
|
public float posMultiplierX = 1f;
|
|
|
|
public float posMultiplierZ = 1f;
|
|
|
|
public float posMultiplierXW = 1f;
|
|
|
|
public float posMultiplierZW = 1f;
|
|
|
|
public float posOffsetX;
|
|
|
|
public float posOffsetZ;
|
|
|
|
private void Start()
|
|
{
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (copyCloudParamsToRefl && CloudReflection != null)
|
|
{
|
|
CloudReflection.density = volumeclouds.density;
|
|
CloudReflection.coverage = volumeclouds.coverage;
|
|
CloudReflection.scale = volumeclouds.scale;
|
|
CloudReflection.detailScale = volumeclouds.detailScale;
|
|
CloudReflection.lowFreqMin = volumeclouds.lowFreqMin;
|
|
CloudReflection.lowFreqMax = volumeclouds.lowFreqMax;
|
|
CloudReflection.highFreqModifier = volumeclouds.highFreqModifier;
|
|
CloudReflection.weatherScale = volumeclouds.weatherScale;
|
|
CloudReflection.startHeight = volumeclouds.startHeight;
|
|
CloudReflection.thickness = volumeclouds.thickness;
|
|
CloudReflection.planetSize = volumeclouds.planetSize;
|
|
CloudReflection.cloudSampleMultiplier = volumeclouds.cloudSampleMultiplier;
|
|
CloudReflection.globalMultiplier = volumeclouds.globalMultiplier;
|
|
CloudReflection.windSpeed = volumeclouds.windSpeed;
|
|
CloudReflection.windDirection = volumeclouds.windDirection;
|
|
CloudReflection.coverageWindSpeed = volumeclouds.coverageWindSpeed;
|
|
CloudReflection.coverageWindDirection = volumeclouds.coverageWindDirection;
|
|
}
|
|
if (volumeclouds != null && tornadoTop != null)
|
|
{
|
|
volumeclouds.vortexPosition = new Vector3(tornadoTop.position.x * posMultiplierX + posOffsetX, 0f, tornadoTop.position.z * posMultiplierZ + posOffsetZ);
|
|
}
|
|
if (volumecloudsTRANSP != null && tornadoTop != null)
|
|
{
|
|
volumecloudsTRANSP.vortexPosition = new Vector3(tornadoTop.position.x * posMultiplierX + posOffsetX, 0f, tornadoTop.position.z * posMultiplierZ + posOffsetZ);
|
|
}
|
|
if (CloudReflection != null && tornadoTop != null)
|
|
{
|
|
CloudReflection.vortexPosition = new Vector3(tornadoTop.position.x * posMultiplierX + posOffsetX, 0f, tornadoTop.position.z * posMultiplierZ + posOffsetZ);
|
|
}
|
|
if (applyWaterVortex && waterMat != null)
|
|
{
|
|
waterMat.SetVector("vortexPosScale", new Vector4(tornadoBottom.position.x * posMultiplierXW + posOffsetX, 0f, tornadoBottom.position.z * posMultiplierZW + posOffsetZ, vortexRadius));
|
|
waterMat.SetVector("_InteractAmpFreqRad", vortexInteractAmpFreqRadial);
|
|
}
|
|
}
|
|
}
|
|
}
|