This repository has been archived on 2026-01-20. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
SH-INT/Assets/Scripts/UI_ScrollViewButton.cs
정영민 f4cf556cde update
2025-02-20 10:30:18 +09:00

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();
}
}
}