You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
3.9 KiB
141 lines
3.9 KiB
3 years ago
|
using UnityEngine;
|
||
|
using System.Collections;
|
||
|
using UnityEngine.UI;
|
||
|
using AX.MessageSystem;
|
||
|
using AX.TrackRecord;
|
||
|
using UnityEngine.SceneManagement;
|
||
|
public class FengXiangControl : MonoBehaviour {
|
||
|
private string FengXiangText;
|
||
|
private Dropdown FengXiangDropdown;
|
||
|
private Dropdown FengLiDropdown;
|
||
|
private Text ShowFengXiangText;
|
||
|
GameObject Wind;
|
||
|
int x, y, z;
|
||
|
float speed = 5f;
|
||
|
void Start ()
|
||
|
{
|
||
|
SetAttri();
|
||
|
}
|
||
|
public void SetAttri()
|
||
|
{
|
||
|
Wind = GameObject.Find("Wind");
|
||
|
FengXiangDropdown = this.gameObject.GetComponent<Dropdown>();
|
||
|
ShowFengXiangText = transform.parent.parent.transform.Find("ShowWeather/FengXiangText").GetComponent<Text>();
|
||
|
FengLiDropdown = transform.parent.transform.Find("FengLiDropdown").GetComponent<Dropdown>();
|
||
|
}
|
||
|
public void Check(int Num)
|
||
|
{
|
||
|
if (Num == 0 || Num == 2|| Num == 3 || Num == 5)
|
||
|
{
|
||
|
int Rote = 180;
|
||
|
switch (FengXiangText)
|
||
|
{
|
||
|
case "东风":
|
||
|
y = -90+ Rote;
|
||
|
break;
|
||
|
case "南风":
|
||
|
y = 0 + Rote;
|
||
|
break;
|
||
|
case "西风":
|
||
|
y = 90 + Rote;
|
||
|
break;
|
||
|
case "北风":
|
||
|
y = -180 + Rote;
|
||
|
break;
|
||
|
case "东北风":
|
||
|
y = -135 + Rote;
|
||
|
break;
|
||
|
case "西南风":
|
||
|
y = 45 + Rote;
|
||
|
break;
|
||
|
case "东南风":
|
||
|
y = -45 + Rote;
|
||
|
break;
|
||
|
case "西北风":
|
||
|
y = 135 + Rote;
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
switch (FengXiangText)
|
||
|
{
|
||
|
case "东风":
|
||
|
y = -90;
|
||
|
break;
|
||
|
case "南风":
|
||
|
y = 0;
|
||
|
break;
|
||
|
case "西风":
|
||
|
y = 90;
|
||
|
break;
|
||
|
case "北风":
|
||
|
y = -180;
|
||
|
break;
|
||
|
case "东北风":
|
||
|
y = -135;
|
||
|
break;
|
||
|
case "西南风":
|
||
|
y = 45;
|
||
|
break;
|
||
|
case "东南风":
|
||
|
y = -45;
|
||
|
break;
|
||
|
case "西北风":
|
||
|
y = 135;
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
public void OnValueChanged()
|
||
|
{
|
||
|
if (Wind == null || FengXiangDropdown==null || ShowFengXiangText==null || FengLiDropdown==null)
|
||
|
{
|
||
|
SetAttri();
|
||
|
}
|
||
|
|
||
|
|
||
|
FengXiangText = FengXiangDropdown.options[FengXiangDropdown.value].text.ToString();
|
||
|
|
||
|
|
||
|
if (FengXiangText == "无风")
|
||
|
{
|
||
|
FengLiDropdown.value = 0;
|
||
|
FengLiDropdown.interactable = false;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
FengLiDropdown.interactable = true;
|
||
|
}
|
||
|
|
||
|
int SceneName =int.Parse( SceneManager.GetActiveScene().name);
|
||
|
|
||
|
|
||
|
Check(SceneName);
|
||
|
|
||
|
ShowFengXiangText.text = FengXiangText;
|
||
|
if (RecordManager.Instance.IsRecording)
|
||
|
{
|
||
|
MessageDispatcher.SendMessage("RecordEditWeatherEvent");
|
||
|
}
|
||
|
if (GameObject.Find("AllParent/pfire").transform.childCount>0)
|
||
|
{//预防场景里没火,修改天气,消息系统报错
|
||
|
MessageDispatcher.SendMessage("ChangeSomkeDir");
|
||
|
MessageDispatcher.SendMessage("ChangeWindLevel");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void Update ()
|
||
|
{
|
||
|
if (this.gameObject.activeInHierarchy == true)
|
||
|
{
|
||
|
Wind.transform.rotation = Quaternion.Lerp(Wind.transform.rotation, Quaternion.Euler(0, y, 0), Time.deltaTime * speed);
|
||
|
}
|
||
|
}
|
||
|
}
|