FuZhou_Custom_BulkCargo_3D/FuZhou_FirstPage/Assets/Scripts/FirstPanel.cs

230 lines
5.8 KiB
C#
Raw Permalink 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 Competition.Mysql.Other;
using LitJson;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
public class FirstPanel : MonoBehaviour
{
public static FirstPanel instance;
/// <summary>
/// 检测的图片
/// </summary>
public List<Image> checkImages;
/// <summary>
/// 选中的图片
/// </summary>
public List<GameObject> showImages;
/// <summary>
/// 省级
/// </summary>
public GameObject sheng_Panel;
/// <summary>
/// 返回福建省地图
/// </summary>
public Button backbtn;
/// <summary>
/// 目录
/// </summary>
public GameObject tab;
/// <summary>
/// 市
/// </summary>
public GameObject citys;
/// <summary>
/// 办事处
/// </summary>
public GameObject workPlace;
/// <summary>
/// 服务器IP
/// </summary>
[HideInInspector]
public string serverIP;
/// <summary>
/// 福清办事处配置
/// </summary>
public string fuqingWorkPlaceJson;
/// <summary>
/// 当前选中的海关
/// </summary>
public static CustomItem currentChoseCustonItem;
void Awake()
{
//限制30帧
Application.targetFrameRate = 30;
currentChoseCustonItem = null;
instance = this;
backbtn.onClick.AddListener(() =>
{
//点福州海关,回到首页,当前无选中关区
currentChoseCustonItem = null;
sheng_Panel.gameObject.SetActive(true);
//关闭所有市
citys.transform.GetComponentsInChildren<CityPanel>().ToList().ForEach(a =>
{
a.gameObject.SetActive(false);
});
//重置办事处item
FirstPanel.instance.workPlace.transform.GetComponentsInChildren<WorkPlacePanel>().ToList().ForEach(a =>
{
a.gameObject.SetActive(false);
});
//关闭所有办事处
FirstPanel.instance.workPlace.SetActive(false);
//取消所有标签选中
FirstPanel.instance.tab.GetComponentsInChildren<TabItem>().ToList().ForEach(a =>
{
a.SetNoChoseState();
});
Application.ExternalCall("ClickCustom", "");
Debug.Log("调前端回到首页");
});
#if UNITY_EDITOR
serverIP = "111.229.30.246";
#endif
string path =Application.streamingAssetsPath + "/驻福清办事处.txt";
StartCoroutine(FirstPanel.instance.CallGet(path, (isok, result) =>
{
if (isok)
{
fuqingWorkPlaceJson = result;
Debug.Log("福清配置读取成功:"+ fuqingWorkPlaceJson);
}
}));
style = new GUIStyle();
style.fontSize = 20;
style.normal.textColor= Color.white;
}
GUIStyle style;
#if UNITY_EDITOR
private void OnGUI()
{
GUI.Label(new Rect(500f,500f,2000f,1000f),"帧率:"+ showFram, style);
}
#endif
/// <summary>
/// 前端调用初始化传IP
/// </summary>
/// <param name="serverIP"></param>
public void InitUnity(string serverIP)
{
this.serverIP= serverIP;
Debug.Log("接收IP"+serverIP);
}
int fram = 0;
float tmptime=0;
int showFram;
private void Update()
{
fram++;
tmptime+= Time.deltaTime;
if(tmptime>=1)
{
showFram = fram;
tmptime = 0;
fram = 0;
}
int index = 0;
foreach (Image image in checkImages)
{
if (IsTrig(image))
{
//触发此市
//Debug.Log(image.name);
Chose(index);
return;
}
index++;
}
//Debug.Log("未触发");
Chose(-1);
}
/// <summary>
/// 是否触发区域
/// </summary>
/// <param name="image"></param>
/// <returns></returns>
private bool IsTrig(Image image)
{
//检测鼠标
RectTransformUtility.ScreenPointToLocalPointInRectangle(image.rectTransform, Input.mousePosition, null, out Vector2 localPos);
Vector2 bil = new Vector2((localPos.x + image.rectTransform.rect.width / 2f) / image.rectTransform.rect.width, (localPos.y + image.rectTransform.rect.height / 2f) / image.rectTransform.rect.height);
Color pixelColor = image.sprite.texture.GetPixelBilinear(bil.x, bil.y);
//Debug.Log("鼠标点:"+Input.mousePosition + " -> 纹理点:" + localPos + " -> 纹理点序列化:"+ bil + " -> 透明度值:"+ pixelColor.a);
if (pixelColor.a == 1)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 上一个显示的
/// </summary>
GameObject lastShow;
private void Chose(int index)
{
if(index==-1)
{
if (lastShow != null)
{
lastShow.gameObject.SetActive(false);
}
}
else
{
if (lastShow != null)
{
lastShow.gameObject.SetActive(false);
}
showImages[index].gameObject.SetActive(true);
lastShow = showImages[index].gameObject;
}
}
public IEnumerator CallGet(string url,Action<bool,string> back)
{
UnityWebRequest request = UnityWebRequest.Get(url);
yield return request.SendWebRequest();
if(!request.isHttpError && !request.isNetworkError)
{
back(true,request.downloadHandler.text);
}
else
{
back(false, request.error);
}
}
}