Make sure you have set up your environment as outlined in the Environment setup assignment.


Package setup

The task for this assignment is to implement a specific interaction technique from the literature as a UPM package, by using Unity’s XR Interaction Toolkit. Your submission must follow the assignment's reference package, in terms of functionality, code architecture, and documentation.

Click the link below to set up your empty package repository for this assignment. You will then have to add this package as a git submodule to your implementation project, following the Environment setup guidelines.

 

Reference package

The reference package for this assignment is linked below, where you will find the full package documentation, including the package manual and scripting API, as well as the package video and a link to the original paper for the interaction technique to implemented. Make sure to carefully review the reference package documentation.

Reference package APK

Install the APK below on your headset to fully test the reference package implementation. You can toggle the Go-Go technique on / off by pressing the right primary button ("A") on your Quest controller.

Package naming sheet

Information required for your package.json file, such as package name, namespace etc. can be found here:

Assignment walkthrough

A short video with instructor commentary on Unity setup for this assignment:

needs google drive link 

Submission instructions

Use the assignment writeup template and submit as PDF here on Canvas:

https://docs.google.com/document/d/1TTGzqU9wCyLPJojkE6-H3cAuqzOPPB6_EEOnnax_kko/edit?usp=sharing 

Rubric

Rubric item Points Description
Logic - Interaction 10
Is an interactor correctly used to enable the user to grab an interactable at a distance and manipulate as expected?
Logic - Scripting API 4 Are the correct properties set as public, and visible in scripting API?
Logic - Serialized Fields 1 Are correct fields serialized in the Unity inspector?
Logic - Balloon Line 5
~~ calc balloon height
Logic - Contact Threshold 5
~~ expose finger contact
Logic - Reset Threshold 5
~~ when fingers leave plane
Logic - Direction control 20
~~ pull to create line
Input - Scripting API 4 Are the correct properties set as public, and visible in scripting API?
Input - Serialized Fields 1 Are correct fields serialized in the Unity inspector?
Input - pinch 10 ~~ pinch to activate?
Feedback - Scripting API 4 Are the correct properties set as public, and visible in scripting API?
Feedback - Serialized Fields 1 Are correct fields serialized in the Unity inspector?
Feedback - Finger Line 10 ~~ show line between fingers
Feedback - Balloon Line 10 ~~ line from right hand to interactor
General - Logistics 0
(Deductions only) Deductions for submission issues such as broken links, low quality assets (low resolution videos), repository issues (commit history), inadequate work summary etc.
General - Manual 5
Is the package manual (markdown in documentation) correctly set up? Does it include all sections compared to reference package?
General - Package installation 0
(Deductions only) Can the package and its sample be imported via the Package Manager as GitHub URL package? Sample scene should run without issues. No points to be earned, incorrect submissions will be deducted points.
General - Sample Scene 5
Does the sample scene match the reference package scene? See instructions on duplicating XRC Core sample scene.
General - Three components 0
(Deductions only) Is the package correctly split into three components; Logic (Go-Go), Feedback, and Input? Not points to be earned, incorrect submissions will be deducted points.