97 lines
2.3 KiB
C#
Raw Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-12-04
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "OpenDataWindow.View" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
namespace G.UI
{
using UnityEngine;
using UnityEngine.UI;
/// <summary>
///
/// </summary>
partial class OpenDataWindow
{
#region Auto Generate
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
[KUIFlag]
Button _btnClose;
[KUIFlag]
RawImage _rawImage;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
#endregion
#region Field
float _timer = 2f;
#endregion
#region Method
/// <summary>
///
/// </summary>
public void InitView()
{
SetViewData();
_rawImage.enabled = false;
_btnClose.onClick.AddListener(this.OnCloseBtnClick);
}
/// <summary>
///
/// </summary>
public void RefreshView()
{
var rt = _rawImage.rectTransform;
var p = RectTransformUtility.WorldToScreenPoint(KUIRoot.RootCamera, rt.position);
//var p = KUIRoot.RootCamera.WorldToScreenPoint(_rawImage.transform.position);
//var p = _rawImage.transform.position;
var canvasScaler = KUIRoot.Instance.GetComponent<CanvasScaler>();
float scale = 1f;
if (canvasScaler.matchWidthOrHeight < 0.5f)
scale = Screen.width / canvasScaler.referenceResolution.x; //这里是按宽度来缩放
else
scale = Screen.width / canvasScaler.referenceResolution.y; //这里是按宽度来缩放
int width = (int)(rt.rect.width * scale);
int height = (int)(rt.rect.height * scale);
var rect = new RectInt((int)p.x, Screen.height - (int)p.y, width, height);
KPlatform.Instance.ShowOpenData(_rawImage.texture, rect);
}
/// <summary>
///
/// </summary>
public void UpdateView()
{
if (_timer > 0f)
{
_timer -= Time.unscaledDeltaTime;
if (_timer <= 0)
{
_rawImage.enabled = true;
}
}
}
void OnCloseBtnClick()
{
KPlatform.Instance.HideOpenData();
CloseWindow(this);
}
#endregion
}
}