{"id":19445692,"url":"https://github.com/kuritaro1122/windowstatemanagement","last_synced_at":"2026-04-12T20:37:37.101Z","repository":{"id":170530496,"uuid":"479220823","full_name":"kuritaro1122/WindowStateManagement","owner":"kuritaro1122","description":null,"archived":false,"fork":false,"pushed_at":"2022-06-11T10:12:39.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-07T22:51:38.457Z","etag":null,"topics":["csharp","unity","unity-scripts"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kuritaro1122.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-08T02:45:13.000Z","updated_at":"2022-04-08T06:24:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"897d4fd5-29e9-4a95-a6de-a6d9e9d75b08","html_url":"https://github.com/kuritaro1122/WindowStateManagement","commit_stats":null,"previous_names":["kuritaro1122/windowstatemanagement"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuritaro1122%2FWindowStateManagement","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuritaro1122%2FWindowStateManagement/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuritaro1122%2FWindowStateManagement/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuritaro1122%2FWindowStateManagement/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kuritaro1122","download_url":"https://codeload.github.com/kuritaro1122/WindowStateManagement/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240630572,"owners_count":19832088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","unity","unity-scripts"],"created_at":"2024-11-10T16:11:31.390Z","updated_at":"2026-04-12T20:37:32.064Z","avatar_url":"https://github.com/kuritaro1122.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WindowStateManagement\n\nウィンドウ（GameObject）が常にどれか一つだけ表示するようにする。ウィンドウの切り替えとEventSystemへの選択オブジェクトの受け渡しを管理する。\n\n# Requirement\n* System.Collections.Generic\n* UnityEngine\n* UnityEngine.EventSystems\n* UnityEngine.UI\n* UnityEditor\n\n# Usage\n① WindowStateManagementを常に存在するオブジェクトにコンポーネント.\\\n② WindowControlをウィンドウとして扱いたいオブジェクトにコンポーネント.\\\n③ WindowStateManagementのメソッドを呼んで,任意のウィンドウを表示.\\\n```\nWindowStateManager windowStateManager;\nWindowControl[] windowControls;\nWindowControl[] popupWindowControls;\n\n// Change windowControls[1]\nwindowStateManager.ChangeThisWindow(windowControls[1]);\n\n// Change main window\nwindowStateManager.ChangeMainWindow();\n\n// Change windowControls[3]\nint index = windowStateManager.GetThisWindowIndex(windowControls[3]);\nwindowStateManager.ChangeWindow(index);\n\n// Show popupWindows[0]\nwindowStateManager.ShowPopupWindow(popupWindows[0]);\npopupWindows[0].SetActive(false) // Close popupWindows[0]\n\n// Show all popupWindows\nwindowStateManager.ShowPopupWindow(popupWindows);\nforeach (var w in popupWindows) w.SetActive(false) // Close all popupWindows\n```\n\n# WindowStateManager\n\nWindowControlを管理する. 任意のウィンドウに切り替える.\n\n# Contains\n\n## Inspector\n\n--\n\n## Public Variable\n```\nint MainWindowIndex\nint CurrentIndex\nbool ExistPopupWindows\nWindowControl CurrentWindow\n```\n\n## Public Function\n```\nvoid ChangeMainWindow()\nvoid ChangeWindow(int index)\nvoid ChangeThisWindow(WindowControl window)\nvoid ShowPopupWindow(WindowControl popupWindow)\nvoid ShowPopupWindows(params WindowControl[] popupWindows)\nint GetThisWindowIndex(WindowControl window)\n```\n\n# WindowControl\n\n任意のオブジェクトにWindowとしての機能を与える. 動作させるにはWindowStateManagerをアタッチする必要がある.\n\n# Contains\n\n## Inspector\n\n--\n\n## Public Variable\n```\nbool Interactable\n```\n\n## Public Function\n```\nvoid InitSelectables()\nvoid ChangeMainWindow()\nvoid ChangeWindow(int index)\nvoid ChangeThisWindow()\nvoid SetInteractable(bool interactable)\nvoid SelectWindow()\nvoid SelectWindow(EventSystem eventSystem)\nint GetThisWindowIndex()\n```\n\n# Note\n調整中です.\n\n# License\n\n\"WindowStateManagement\" is under [MIT license](https://en.wikipedia.org/wiki/MIT_License).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkuritaro1122%2Fwindowstatemanagement","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkuritaro1122%2Fwindowstatemanagement","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkuritaro1122%2Fwindowstatemanagement/lists"}