122 lines
3.2 KiB
C#
122 lines
3.2 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using DG.Tweening;
|
|
using TMPro;
|
|
using System;
|
|
|
|
namespace SHINT.UI
|
|
{
|
|
public class UI_ScrollViewButton : MonoBehaviour
|
|
{
|
|
FacilityManager facilityManager;
|
|
InteractionManager interactionManager;
|
|
|
|
public TextMeshProUGUI Name;
|
|
string facilityInfoName;
|
|
UI_Button animationButton;
|
|
public float assemblyDistance;
|
|
public float injectionDistance;
|
|
|
|
public UI_FacilityInfo facilityInfoUI;
|
|
|
|
public event Action<Facility> onClickButton;
|
|
public Facility f;
|
|
|
|
public void Initialize()
|
|
{
|
|
facilityManager = FindSingle<FacilityManager>();
|
|
interactionManager = FindSingle<InteractionManager>();
|
|
animationButton = GetComponent<UI_Button>();
|
|
GetComponent<Button>().onClick.AddListener(OnClickEvent);
|
|
}
|
|
|
|
void OnClickEvent()
|
|
{
|
|
CameraMove();
|
|
onClickButton?.Invoke(f);
|
|
}
|
|
|
|
|
|
public void SetFacility(Facility facility)
|
|
{
|
|
var info = facility.info;
|
|
f = facility;
|
|
facilityInfoName = info.name;
|
|
switch (facility.info.buildingType)
|
|
{
|
|
case BuildingType.Injection:
|
|
SetInjectionName(facilityInfoName);
|
|
break;
|
|
|
|
case BuildingType.Assembly:
|
|
SetAssemblyName(facilityInfoName);
|
|
break;
|
|
}
|
|
facility.SetFacilityButton(this);
|
|
SetFacilityInfoUI();
|
|
}
|
|
|
|
void SetFacilityInfoUI()
|
|
{
|
|
facilityInfoUI = facilityManager.uiTable[facilityInfoName];
|
|
facilityInfoUI.SetTopPanelName(Name.text);
|
|
}
|
|
|
|
|
|
void SetInjectionName(string name)
|
|
{
|
|
string modifiedName;
|
|
string removeChar = "_";
|
|
modifiedName = name.Replace(removeChar, " ");
|
|
string nextLineWord = "È£±â ";
|
|
modifiedName = modifiedName.Replace(nextLineWord, nextLineWord);
|
|
modifiedName = modifiedName.Substring(0, modifiedName.IndexOf(" "));
|
|
|
|
Name.text = modifiedName;
|
|
Name.fontSize = 12f;
|
|
}
|
|
|
|
void SetAssemblyName(string name)
|
|
{
|
|
string modifiedName;
|
|
string removeChar = "_";
|
|
modifiedName = name.Replace(removeChar, " ");
|
|
|
|
foreach (char character in modifiedName)
|
|
{
|
|
if (IsKoreanCharacter(character))
|
|
{
|
|
modifiedName = modifiedName.Replace(character.ToString(), "\n" + character);
|
|
break;
|
|
}
|
|
}
|
|
|
|
Name.text = modifiedName;
|
|
Name.fontSize = 10f;
|
|
}
|
|
|
|
bool IsKoreanCharacter(char c)
|
|
{
|
|
return (c >= '\uAC00' && c <= '\uD7AF');
|
|
}
|
|
|
|
|
|
|
|
void CameraMove()
|
|
{
|
|
interactionManager.FacilityFocusing(f);
|
|
}
|
|
|
|
public void ButtonDeactiveAnimation()
|
|
{
|
|
animationButton.ButtonColorChange_Deactive();
|
|
}
|
|
public void ButtonActiveAnimation()
|
|
{
|
|
animationButton.ButtonColorChange_Active();
|
|
}
|
|
}
|
|
}
|