private void DrawRoads() { // 도로를 그림 foreach (var road in roads) { CityUI city1 = cityUIs[road.city1]; CityUI city2 = cityUIs[road.city2]; RoadUI roadUI = Instantiate(roadUIPrafab); roadUI.name = road.ToString(); roadUI.transform.SetParent(roadHolder, false); roadUI.SetRoad(road); // 방향 Vector2 dir = city2.transform.position - city1.transform.position; // 위치 Vector2 roadCenter = (city1.transform.position + city2.transform.position) / 2; roadUI.transform.position = roadCenter; // 각도 float angle = Mathf.Atan2(dir.y, dir.x) * 180 / 3.14f; float distance = dir.magnitude; roadUI.transform.rotation = Quaternion.Euler(0, 0, angle); // 길이 RectTransform roadRectTransform = roadUI.GetComponent <RectTransform>(); Vector2 sizeDelta = roadRectTransform.sizeDelta; sizeDelta.x = distance / canvas.transform.localScale.x; roadRectTransform.sizeDelta = sizeDelta; // 도로 완료 roadUI.gameObject.SetActive(true); } }
/// <summary> /// Invoked on options change to refresh the main menu and possibly update the labels for /// a new language. Takes a second, very slow. /// </summary> internal static void RebuildMenu() { if (ModUI.Instance != null) { Log._Debug("Rebuilding the TM:PE menu..."); ModUI.Instance.RebuildMenu(); // TM:PE main button also needs to be uidated if (ModUI.Instance.MainMenuButton != null) { ModUI.Instance.MainMenuButton.UpdateButtonImageAndTooltip(); } RoadUI.ReloadTexturesWithTranslation(); TrafficLightTextures.ReloadTexturesWithTranslation(); TMPELifecycle.Instance.TranslationDatabase.ReloadTutorialTranslations(); TMPELifecycle.Instance.TranslationDatabase.ReloadGuideTranslations(); } else { Log._Debug("Rebuilding the TM:PE menu: ignored, ModUI is null"); } }