FuZhou_Custom_BulkCargo_3D/FuZhou_FirstPage/Assets/Scripts/FirstPanel.cs

160 lines
3.8 KiB
C#
Raw 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 System;
using System.Collections;
using System.Collections.Generic;
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>
/// 服务器IP
/// </summary>
[HideInInspector]
public string serverIP;
void Awake()
{
instance = this;
backbtn.onClick.AddListener(() =>
{
sheng_Panel.gameObject.SetActive(true);
tab.gameObject.SetActive(true);
citys.transform.GetComponentsInChildren<CityPanel>().ToList().ForEach(a =>
{
a.gameObject.SetActive(false);
});
});
//初始化
Application.ExternalCall("OnWake");
#if UNITY_EDITOR
serverIP = "172.16.1.164";
#endif
}
/// <summary>
/// 前端调用初始化传IP
/// </summary>
/// <param name="serverIP"></param>
public void InitUnity(string serverIP)
{
this.serverIP= serverIP;
Debug.Log("接收IP"+serverIP);
}
private void Update()
{
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);
}
}
}