OneShotOneKill/Assets/Script/UGUI/Ingame/DungeonProcess.cs

68 lines
2.0 KiB
C#
Raw Normal View History

2026-01-07 21:27:42 +00:00
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class DungeonProcess : MonoBehaviour
{
public Slider m_slider;
public GameObject go_ExtarMark;
List<GameObject> list_mark = new List<GameObject>();
float m_Speed = 0.2f, nextValue = 0f;
GameObject Get_Mark()
{
for (int i = 0; i < list_mark.Count; i++)
{
if (!list_mark[i].activeSelf)
return list_mark[i];
}
list_mark.Add(DSUtil.Get_Clone(go_ExtarMark, go_ExtarMark.transform.parent));
return list_mark[list_mark.Count - 1];
}
public void Set_ExtraMark()
{
m_slider.value = nextValue = 0f;
list_mark.ForEach(f => f.SetActive(false));
var lst = MyValue.m_MyStageData.m_StageData.list_Nodedata;
for (int i = 0; i < lst.Count; i++)
{
if (lst[i].m_Type == eStageNodeType.Campfire)
{
var mark = Get_Mark();
var worldpos = DSUtil.GetHypotheticalHandleWorldPosition(m_slider, i / (float)(lst.Count));
var rt = mark.transform as RectTransform;
var anchorpos = DSUtil.Get_UIPos(worldpos, rt);
rt.anchoredPosition = new Vector2(anchorpos.x, rt.anchoredPosition.y);
mark.SetActive(true);
}
}
}
public void Set()
{
if (MyValue.m_MyStageData.m_NodeIndex == -1)
nextValue = 0f;
else
nextValue = MyValue.m_MyStageData.m_NodeIndex / (float)MyValue.m_MyStageData.m_StageData.list_Nodedata.Count;
}
private void Update()
{
if (nextValue > m_slider.value)
{
m_slider.value += Time.deltaTime * m_Speed;
if (m_slider.value > nextValue)
m_slider.value = nextValue;
}
else if (nextValue < m_slider.value)
{
m_slider.value -= Time.deltaTime * m_Speed;
if (m_slider.value < nextValue)
m_slider.value = nextValue;
}
}
}