Thanks for your interest in improving this project. Contributions of all sizes are welcome: bug reports, feature ideas, documentation fixes, and pull requests.
- Fork the repository and clone your fork.
- Open the project in Unity. It requires Unity 6.5 or newer (it uses the Panel Renderer component; see Tested With in the README for verified versions).
- The compass lives under
Assets/Horizontal Compass/. The demo lives inAssets/Scenes/Example.unity.
- Create a branch for your work:
git checkout -b my-feature. - Make your change.
- Test it in the
Example.unityscene:- Enter Play mode and rotate the camera to confirm the compass tracks heading.
- Add a marker via the Inspector (or
add_markerin script) and confirm it positions and shows distance. - Use Editor Preview Heading on the
Compass_Controllerto verify edit-mode behaviour without entering Play mode.
- Note which Unity version(s) you tested in. This helps keep the compatibility table accurate.
To keep the codebase consistent, please match the existing style:
snake_casefor variables, fields, methods, and parameters.Title_Snake_Casefor classes and structs (e.g.Compass_Controller).SCREAMING_SNAKE_CASEfor constants.- K&R braces (opening brace on the same line).
- Explicit types (avoid
var). - Tabs for indentation.
- Method parameters on a single line.
When in doubt, look at Compass_Controller.cs and follow the surrounding code.
- Push your branch and open a PR against
master. - Fill out the PR template.
- Describe what you changed and which Unity version you tested in.
- Keep PRs focused. One logical change per PR is easier to review and merge.
New here? These are welcoming, self-contained tasks. Check the issues labelled good first issue, or pick one of these:
- Add a version row to the Tested With table in the README after testing on a Unity version not yet listed.
- Configurable distance units (metres / kilometres / imperial) in
format_distance. - Distance-based marker fade (hide or fade markers beyond a configurable range).
Use the issue templates. They prompt for the details needed (Unity version, repro steps, expected vs. actual).
By contributing, you agree that your contributions are licensed under the MIT License.