{"id":16209916,"url":"https://github.com/annulusgames/enhancedonscreenstick","last_synced_at":"2025-03-02T08:35:01.413Z","repository":{"id":223818946,"uuid":"761593902","full_name":"annulusgames/EnhancedOnScreenStick","owner":"annulusgames","description":"Provides an advanced virtual joystick compatible with Unity Input System/uGUI.","archived":false,"fork":false,"pushed_at":"2024-03-31T11:28:31.000Z","size":1944,"stargazers_count":79,"open_issues_count":1,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-02T03:24:15.934Z","etag":null,"topics":[],"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/annulusgames.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":"2024-02-22T05:51:53.000Z","updated_at":"2025-02-13T16:52:39.000Z","dependencies_parsed_at":"2024-10-27T20:27:20.693Z","dependency_job_id":"8b8b06ce-c2e7-45bb-95a2-82be7d28500d","html_url":"https://github.com/annulusgames/EnhancedOnScreenStick","commit_stats":null,"previous_names":["annulusgames/enhancedonscreenstick","yn01dev/enhancedonscreenstick","yn01-dev/enhancedonscreenstick"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/annulusgames%2FEnhancedOnScreenStick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/annulusgames%2FEnhancedOnScreenStick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/annulusgames%2FEnhancedOnScreenStick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/annulusgames%2FEnhancedOnScreenStick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/annulusgames","download_url":"https://codeload.github.com/annulusgames/EnhancedOnScreenStick/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241481969,"owners_count":19969833,"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":[],"created_at":"2024-10-10T10:34:07.289Z","updated_at":"2025-03-02T08:35:01.374Z","avatar_url":"https://github.com/annulusgames.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Enhanced On-Screen Stick\n Provides an advanced virtual joystick compatible with Unity Input System/uGUI.\n\n\u003cimg src=\"https://github.com/AnnulusGames/EnhancedOnScreenStick/blob/main/docs/images/header.png\" width=\"800\"\u003e\n\n[![license](https://img.shields.io/badge/LICENSE-MIT-green.svg)](LICENSE)\n![unity-version](https://img.shields.io/badge/unity-2020.1+-000.svg)\n[![releases](https://img.shields.io/github/release/AnnulusGames/EnhancedOnScreenStick.svg)](https://github.com/AnnulusGames/EnhancedOnScreenStick/releases)\n\n[日本語版READMEはこちら](README_JA.md)\n\nEnhanced On-Screen Stick is a library that provides a highly functional virtual stick compatible with Unity's Input System. It simulates joystick input on touch devices such as mobile using Unity's Input System [On-screen Controls](https://docs.unity3d.com/Packages/com.unity.inputsystem@1.7/manual/OnScreen.html). It also allows advanced customization such as touch position tracking, dead zones, and adjustable operational areas.\n\n## Setup\n\n### Requirements\n\n* Unity 2020.1 or later\n* Input System 1.0.0 or later\n\n### Installation\n\n1. Open the Package Manager from Window \u003e Package Manager.\n2. Click the \"+\" button \u003e Add package from git URL.\n3. Enter the following URL:\n\n```\nhttps://github.com/AnnulusGames/EnhancedOnScreenStick.git?path=Assets/EnhancedOnScreenStick\n```\n\nAlternatively, open Packages/manifest.json and add the following to the dependencies block:\n\n```json\n{\n    \"dependencies\": {\n        \"com.annulusgames.enhanced-on-screen-stick\": \"https://github.com/AnnulusGames/EnhancedOnScreenStick.git?path=Assets/EnhancedOnScreenStick\"\n    }\n}\n```\n\n## Quick Start\n\nBy integrating Enhanced On-Screen Stick, you can create a virtual stick from `Create \u003e Enhanced On-Screen Controls \u003e On-Screen Stick`.\n\n\u003cimg src=\"https://github.com/AnnulusGames/EnhancedOnScreenStick/blob/main/docs/images/img-create-menu.png\" width=\"500\"\u003e\n\nOnce created, place it on the Canvas and adjust its size and appearance. The RectTransform range of the object with the attached components will become the operable area.\n\n\u003cimg src=\"https://github.com/AnnulusGames/EnhancedOnScreenStick/blob/main/docs/images/img-scene-view.png\" width=\"600\"\u003e\n\nNext, set the Control Path from the Inspector. This allows you to simulate input from any device.\n\n\u003cimg src=\"https://github.com/AnnulusGames/EnhancedOnScreenStick/blob/main/docs/images/img-inspector.png\" width=\"600\"\u003e\n\nSetup is now complete. You can process input using the Input System as usual. Below is a sample of using Enhanced On-Screen Stick and InputAction for movement processing.\n\n```cs\nusing UnityEngine;\nusing UnityEngine.InputSystem;\n\npublic class Player : MonoBehaviour\n{\n    [SerializeField] InputAction inputAction;\n    [SerializeField] float movementSpeed = 5f;\n\n    void Start()\n    {\n        inputAction.Enable();\n    }\n\n    void Update()\n    {\n        transform.position += movementSpeed * Time.deltaTime * (Vector3)inputAction.ReadValue\u003cVector2\u003e();\n    }\n}\n```\n\n\u003cimg src=\"https://github.com/AnnulusGames/EnhancedOnScreenStick/blob/main/docs/images/img-sample-1.gif\" width=\"800\"\u003e\n\n## Customization\n\n### Object Configuration\n\n`Enhanced On-Screen Stick` consists of the following objects:\n\n```\n- Enhanced On-Screen Stick\n  - Background\n    - Handle\n```\n\nAttach the `Enhanced On-Screen Stick` component to the top-level object and attach some kind of Graphic component (such as Image) so that touch events can be detected. The RectTransform of this object will become the operable area for the stick.\n\nBackground and Handle are objects for visually representing the position of the stick. You can freely change their size and appearance, but Handle must be a child of Background.\n\n### StickType\n\nStickType allows you to change the behavior when the stick is manipulated.\n\n| StickType | Description |\n| - | - |\n| Fixed     | The stick is always fixed to its initial position. |\n| Floating  | The stick moves to the touched position and remains fixed there until the drag ends. |\n| Dynamic   | The stick moves to the touched position and follows the drag movement. |\n\n### Other Settings\n\n| Property | Description |\n| - | - |\n| Movement Range | Specifies the distance from the center of the Handle for movement. |\n| Dead Zone | Sets the threshold for input from 0 to 1. Input values below the Dead Zone are corrected to 0. |\n| Show Only When Pressed | If true, Background and Handle are inactive when not touched. |\n\n## License\n\n[MIT License](LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fannulusgames%2Fenhancedonscreenstick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fannulusgames%2Fenhancedonscreenstick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fannulusgames%2Fenhancedonscreenstick/lists"}