68 lines
2.0 KiB
C#
68 lines
2.0 KiB
C#
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;
|
|
}
|
|
}
|
|
} |