Skip to content

ananthxr/Full-ARF

Repository files navigation

Full ARF - Unity Project

Project Overview

This is a Unity AR project set up for parallel development between multiple team members.


Quick Start for New Developers

1. Prerequisites

  • Unity [Check version in ProjectSettings/ProjectVersion.txt]
  • Git installed and configured
  • Access to the repository

2. Clone & Setup

git clone <repository-url>
cd "Full ARF"

3. Configure Unity

  1. Open project in Unity
  2. Go to Edit > Project Settings > Editor
  3. Set Version Control Mode: Visible Meta Files
  4. Set Asset Serialization Mode: Force Text

4. Read the Documentation

5. Create Your Branch

git checkout -b develop origin/develop

Project Structure

Assets/
├── _Project/              ← Work here!
│   ├── UI/                ← UI Developer's zone
│   ├── Scripts/           ← Backend Developer's zone
│   ├── Prefabs/           ← Shared (coordinate first!)
│   ├── Scenes/
│   │   ├── Core/
│   │   ├── UI/
│   │   └── Test/
│   ├── Materials/
│   ├── Audio/
│   ├── Models/
│   └── Textures/
└── ThirdParty/            ← External assets

Team Roles & Responsibilities

UI Developer

Works in: Assets/_Project/UI/ Branch naming: feature/ui-* Responsibilities:

  • Canvas layouts
  • UI prefabs (buttons, panels, menus)
  • UI animations
  • HUD elements
  • Menu systems

Backend Developer

Works in: Assets/_Project/Scripts/ Branch naming: feature/backend-* Responsibilities:

  • Game logic
  • Player/enemy systems
  • Data management
  • API integrations
  • Core game systems

Daily Workflow

Morning (Start of Day)

cd "Full ARF"
git checkout develop
git pull origin develop
git checkout -b feature/ui-your-feature

During Work

  • Work in your designated folders
  • Save frequently
  • Commit every 1-2 hours:
    git add Assets/_Project/UI/
    git commit -m "ui: add new button component"
    git push origin feature/ui-your-feature

Evening (End of Day)

git status
git push origin feature/ui-your-feature

Creating a Pull Request

  1. Update your branch:

    git checkout develop
    git pull origin develop
    git checkout feature/ui-your-feature
    git merge develop
  2. Test in Unity - Ensure everything works!

  3. Push changes:

    git push origin feature/ui-your-feature
  4. Create PR on GitHub/GitLab:

    • Base: develop
    • Compare: feature/ui-your-feature
    • Add description and screenshots
    • Request review
  5. After merge:

    git checkout develop
    git pull origin develop
    git branch -d feature/ui-your-feature

Commit Message Format

<type>: <short description>

<optional longer description>

Types: feat, fix, ui, refactor, docs, test, chore

Examples:

ui: add main menu with navigation buttons
feat: implement player inventory system
fix: resolve null reference in PlayerController

Conflict Resolution

Scene Conflicts

Use separate scenes for UI and gameplay testing:

  • UI Dev: UI_MainMenu.unity, UI_HUD.unity
  • Backend Dev: GameplayTest.unity

Prefab Conflicts

Use nested prefabs to avoid conflicts:

PlayerPrefab (root)
├── PlayerModel (Backend dev)
├── PlayerController (Backend dev)
└── PlayerHealthBar (UI dev - nested prefab)

If Conflicts Occur

# Accept your version
git checkout --ours path/to/file

# Or accept their version
git checkout --theirs path/to/file

# Then test in Unity!

Communication Protocol

Before Working on Shared Assets

In Team Chat:

@team I need to edit PlayerPrefab to add a health bar.
Anyone working on it?

Daily Updates

Share in team chat:

  • What you completed yesterday
  • What you're working on today
  • Any blockers

Git Commands Quick Reference

# Basic workflow
git status                              # Check status
git add <file>                          # Stage file
git commit -m "message"                 # Commit
git push origin <branch>                # Push to remote
git pull origin develop                 # Pull latest changes

# Branching
git checkout -b feature/ui-new-feature  # Create new branch
git checkout develop                    # Switch to develop
git branch -d feature/ui-old-feature    # Delete local branch

# Viewing history
git log --oneline                       # View commit history
git diff                                # View unstaged changes

# Undoing changes
git checkout -- <file>                  # Discard local changes
git reset --soft HEAD~1                 # Undo last commit (keep changes)

Testing Checklist

Before Committing

  • Code compiles (no errors in Unity console)
  • Tested in Play mode
  • No null reference exceptions

Before Creating PR

  • Merged latest develop
  • Resolved any conflicts
  • Tested integration
  • All scenes load correctly
  • Code is commented

Project-Specific Notes

Unity Version

Check ProjectSettings/ProjectVersion.txt for the exact version. Everyone must use the same Unity version!

Firebase Integration

  • API keys are in .env file (not in version control)
  • Never commit secrets or credentials

AR Requirements

  • Test on actual devices when possible
  • AR Foundation dependencies are managed via Unity Package Manager

Troubleshooting

"Permission denied" when pushing

Check your Git credentials and remote URL:

git remote -v

"Merge conflict in scene file"

Accept one version and manually add back missing changes:

git checkout --ours Assets/Scenes/MainGame.unity
# Then open in Unity and add back missing objects

"Unity says file is missing"

Regenerate meta files:

Unity: Assets > Reimport All

Documentation

All documentation is in .github/docs/:


Need Help?

Questions?

  • Check the documentation first
  • Ask in team chat
  • Create an issue on GitHub/GitLab

External Resources


Team Chat & Resources

  • Team Chat: [Your Slack/Discord/Teams channel]
  • Issue Tracker: [GitHub Issues / Jira]
  • Project Board: [Trello / GitHub Projects]

Important Rules

  1. Never commit directly to main or develop
  2. Always work on feature branches
  3. Pull before starting work each day
  4. Communicate before editing shared files
  5. Test before creating pull requests
  6. Write clear commit messages
  7. Use the same Unity version as the team

Getting Started Today

  1. Read COLLABORATION_WORKFLOW.md
  2. Pull latest develop: git pull origin develop
  3. Create your feature branch: git checkout -b feature/ui-your-task
  4. Start working in your designated folder
  5. Commit often, push daily
  6. Communicate with the team

Happy Coding!

For questions or issues, contact your team lead.

About

ARTH Unity Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published