106 lines
2.5 KiB
C#
106 lines
2.5 KiB
C#
![]() |
// ***********************************************************************
|
|||
|
// Assembly : Unity
|
|||
|
// Author : Kimch
|
|||
|
// Created : 2020-05-31
|
|||
|
// Description :
|
|||
|
// Last Modified By : Kimch
|
|||
|
// Last Modified On :
|
|||
|
// ***********************************************************************
|
|||
|
// <copyright file= "BubbleBoard" company="kunpo"></copyright>
|
|||
|
// <summary></summary>
|
|||
|
// ***********************************************************************
|
|||
|
namespace G
|
|||
|
{
|
|||
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using DG.Tweening;
|
|||
|
using TMPro;
|
|||
|
using UnityEngine;
|
|||
|
using UnityEngine.UI;
|
|||
|
|
|||
|
public class BubbleBoard : KUIWidget
|
|||
|
{
|
|||
|
[KUIFlag]
|
|||
|
private Image _imgBubble;
|
|||
|
[KUIFlag]
|
|||
|
#pragma warning disable CS0649 // 从未对字段“BubbleBoard._tmpText”赋值,字段将一直保持其默认值 null
|
|||
|
private TextMeshProUGUI _tmpText;
|
|||
|
#pragma warning restore CS0649 // 从未对字段“BubbleBoard._tmpText”赋值,字段将一直保持其默认值 null
|
|||
|
|
|||
|
private RectTransform _rectTransform;
|
|||
|
private RectTransform _parentRect;
|
|||
|
private float _showDuration;
|
|||
|
|
|||
|
private void Awake()
|
|||
|
{
|
|||
|
SetViewData();
|
|||
|
_rectTransform = this.GetComponent<RectTransform>();
|
|||
|
_parentRect = this.transform.parent.GetComponent<RectTransform>();
|
|||
|
}
|
|||
|
|
|||
|
public void Reset()
|
|||
|
{
|
|||
|
gameObject.SetActive(false);
|
|||
|
}
|
|||
|
|
|||
|
public void SetContent(string text)
|
|||
|
{
|
|||
|
if (_tmpText != null)
|
|||
|
{
|
|||
|
_tmpText.gameObject.SetActive(true);
|
|||
|
_tmpText.text = text;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void SetDuration(float second)
|
|||
|
{
|
|||
|
_showDuration = second;
|
|||
|
}
|
|||
|
|
|||
|
Transform _target;
|
|||
|
public void SetTarget(Transform target)
|
|||
|
{
|
|||
|
_target = target;
|
|||
|
}
|
|||
|
|
|||
|
Vector3 _position = Vector3.zero;
|
|||
|
public void SetPosition(Vector3 worldposition, Vector2 offset = default)
|
|||
|
{
|
|||
|
_position = worldposition;
|
|||
|
}
|
|||
|
|
|||
|
public void LateUpdate()
|
|||
|
{
|
|||
|
if (_showDuration > 0f)
|
|||
|
{
|
|||
|
_showDuration -= Time.unscaledDeltaTime;
|
|||
|
if (_showDuration <= 0f)
|
|||
|
{
|
|||
|
BoardManager.Instance.ReturnBoard(this);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (_target)
|
|||
|
{
|
|||
|
_position = _target.position;
|
|||
|
Vector3 screenPosition = RectTransformUtility.WorldToScreenPoint(Camera.main, _position);
|
|||
|
RectTransformUtility.ScreenPointToLocalPointInRectangle(_parentRect, screenPosition, KUIRoot.RootCamera, out Vector2 localPoint);
|
|||
|
_rectTransform.anchoredPosition = localPoint;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void DisableThis()
|
|||
|
{
|
|||
|
this.gameObject.SetActive(false);
|
|||
|
}
|
|||
|
|
|||
|
public void Init()
|
|||
|
{
|
|||
|
this.gameObject.SetActive(true);
|
|||
|
_target = null;
|
|||
|
_tmpText.text = string.Empty;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|