123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class WaterRangeCtrlTool : MonoBehaviour
- {
- public static WaterRangeCtrlTool _Instance;
- public GameObject[] FxObjects;
- public Material waterRangeMat;
- public Transform hemian;
- public AnimationCurve waterCurveSZ;
- public AnimationCurve waterCurveVZ;
- public AnimationCurve waterCurve_65000;
- public AnimationCurve waterCurve_70000;
- public int waterCurveIndex
- {
- private set;
- get;
- }
- private void Awake()
- {
- _Instance = this;
- FxObjects = new GameObject[this.transform.childCount];
- for (int i = 0; i < FxObjects.Length; i++)
- {
- FxObjects[i] = this.gameObject.transform.GetChild(i).gameObject;
- //FxObjects[i].SetActive(true);
- }
- waterRangeMat = this.transform.Find("NeiHe_FenQu").GetComponent<MeshRenderer>().material;
- hemian = this.transform.Find("HeMianTrans");
- ChangeWaterCurve(0);
- }
- public void ShowFx(bool reSetValue)
- {
- if (reSetValue)
- {
- SetRangeValue(0);
- }
- for (int i = 0; i < FxObjects.Length; i++)
- {
- FxObjects[i].SetActive(true);
- }
- hemian.transform.localPosition = Vector3.forward * 35;
- }
- public void HideFx()
- {
- waterRangeMat.SetFloat("_ClipLength", 1);
- hemian.transform.localPosition = Vector3.zero;
- for (int i = 0; i < FxObjects.Length; i++)
- {
- FxObjects[i].SetActive(false);
- }
- }
-
- public void SetRangeValue(float value)
- {
- Debug.Log(value);
- float rangeValue=0;
- switch (waterCurveIndex)
- {
- case 0 :
- rangeValue = waterCurve_65000.Evaluate(value);
- break;
- case 1 :
- rangeValue = waterCurve_70000.Evaluate(value);
- break;
- }
- Debug.Log(rangeValue);
- waterRangeMat.SetFloat("_ClipLength",rangeValue);
- }
- public void ChangeWaterCurve(int index)
- {
- waterCurveIndex = index;
- }
- }
|